1.配置pom.xml
<!-- struts2-core -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.28</version>
</dependency>
<!-- java servlet api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
2.resources文件夹下面配置struts.xml 配置<package> <action>文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<!--2.5版本必须加,安全性考虑-->
<!--<global-allowed-methods>regex:.*</global-allowed-methods>-->
<action name="user_*" class="com.test.controller.UserAction" method="{1}">
<!--<result>login.jsp</result>-->
<result name="index">{1}.jsp</result>
<result name="add">{1}.jsp</result>
<result name="edit">{1}.jsp</result>
</action>
</package>
</struts>
3.web.xml中配置struts的过滤器
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--配置struts2的过滤器-->
<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>
</web-app>
-
struts.xml文件配置介绍
3.1package配置
- name属性 作用:定义一个包的名称,它必须唯一.
- Namespace属性 作用:主要是与action标签中的name属性联合使用来确定一个action的访问路径
- extends属性 作用:主要是制定继承自哪个包,一般值为struts-default
Struts-default包是在struts-default.xml文件中声明的(位置:struts2-core.jar包中)
4.abstract属性 它代表当前包是一个抽象的,主要用于被继承
3.2action配置
- name属性 作用:主要是与package标签中的namespace属性联合使用来确定一个action的访问路径
- class属性 作用:主要是用来指示当前的action类的全路径类名
- method属性 作用:用于指示当前action类中的那个方法去执行
3.3result配置
它主要是用于指示结果视图,包含再action标签中
- name属性 作用:是与action类中的method方法的返回值进行匹配,来确定跳转路径
2.type属性 作用是用于指定跳转方式(在struts2-core.jar/struts-default.xml中可以找到)
用Action的属性接收参数
Controller层建UserAction 类 PO层建User类
public class UserAction extends ActionSupport implements
RequestAware,SessionAware ,ApplicationAware {
private User user;
private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String index(){
System.out.println("user:"+user);
request.put("user",user.getUser());
request.put("pass",user.getPass());
session.put("user",user.getUser());
session.put("pass",user.getPass());
return "index";
}
@Override
public void setRequest(Map<String, Object> request) {
this.request=request;
}
@Override
public void setSession(Map<String, Object> session) {
this.session=session;
}
@Override
public void setApplication(Map<String, Object> application) {
this.application=application;
}
public class User {
private String user;
private String pass;
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public User(String user, String pass) {
this.user = user;
this.pass = pass;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"user='" + user + '\'' +
", pass='" + pass + '\'' +
'}';
}
}
前端界面建login.jsp登录界面 index.jsp跳转后界面
index界面
<body>
<h2>request</h2>
<%--<a href="user_add">添加</a>--%>
<%--<a href="user_edit">编辑</a>--%>
用户名:${requestScope.user}密码:${requestScope.pass}
<h2>session</h2>
用户名${sessionScope.user}密码${sessionScope.pass}
</body>
</html>
login界面
<body>
<form action="user_index">
<input type="text" name="user.user" value="admin">
<input type="password" name="user.pass" value="admin">
<input type="submit" value="登录">
</form>
</body>
</html>