struts2环境搭建

来源:互联网 发布:淘宝一键上传插件 编辑:程序博客网 时间:2024/06/15 18:25

这里说的struts2.3,下载核心的jar包


步骤:

1.创建一个web工程

2.将下载下来的jar包拷贝的WEB-INF->lib文件夹中

3.在src目录下创建一个xml文件名称为strurs.xml(固定名称)基本内容如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="admin" extends="struts-default"><action name="abc" class="com.Login" method="login"><result name="su">/su.jsp</result><result name="er">/er.jsp</result></action></package></struts>   

action中的abc就是action的名字,在与前台表单中地 action对应。

method=“login”  标识回去执行com.Login类中的login方法(该方法返回类型为String)

result中的name和调用的action类中的方法返回值进行匹配哈那个一致就返回result对应的视图(.jsp)


4.在web.xml文件中添加如下过滤器:

<filter>  <filter-name>struts2</filter-name>  <filter-class>  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  </filter-class>  </filter>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>

/*  表示所有的请求都会被拦截到

5.我简单写下action中对应调转到的action类:

package com;public class Login{Users user;public String login() {System.out.println(user.getName()+":"+user.getPow());return "su";}public Users getUser() {return user;}public void setUser(Users user) {this.user = user;}}

Users类:

package com;public class Users {private String name ;public String getName() {return name;}public void setName(String name) {this.name = name;}}




6.在index.jsp文件内容:

<body>    <form action="abc" method="post">    <input type="text" name="user.name"/>    <input type="password" name="user2.pow"/>    <input type="submit" value="提交"/>    </form>  </body>


发布运行一下我们就可以在我们前途传入的值了;



这是用的典型的action自动封装的方法:

后台:.在一个普通的java类中(不集成action接口)定义一个Users类 user并添加user的gat,set方法

前台:.这样在input中的name用user.name;user.pow的方式就可以将数据提交到action中的user对象中了

注意:

这是对于封装成user对象了,想一下要是不是对象就是一个String类型的变量在user的未知,生成这个string的get,set方法,在前台直接string就可以自动封装值了对吧。

另外还有一种方法可以自动封装:

后台:action实现ModelDriven<UserInfo>接口,具体如下:

publicclass LoginAction implements ModelDriven<Users> {private Users user = new Users();@Overridepublic Users getModel() {return user;}}

前台:input中的name写name,pow就可以了不用写前缀了


但是这种比较有局限性,因为我们的action基本上都会去接受好多不同实体类中的值。




原创粉丝点击