1.新建一个web项目并加入struts-2.1.6的依赖库。
[quote]
struts-2.1.6_HOME/lib/commons-fileupload-1.2.1.jar
struts-2.1.6_HOME/lib/commons-io-1.3.2.jar
struts-2.1.6_HOME/lib/commons-logging-1.1.jar
struts-2.1.6_HOME/lib/freemarker-2.3.13.jar
struts-2.1.6_HOME/lib/ognl-2.6.11.jar
struts-2.1.6_HOME/lib/struts2-core-2.1.6.jar
struts-2.1.6_HOME/lib/xwork-2.1.2.jar
[/quote]
2.配置web.xml文件(struts2是从一个过滤器开始运行的)
3.在项目的src目录下创建struts.xml文件
4.编写action类
5.编写表单页面
6.编写提交成功页面
struts2执行过程:
当一个客户端请求过来的时候会把请求交给我们的服务器(tomcat),服务器会根据请求会找到交给哪个application来处理,然后会去找这个application下的web.xml文件,并参考web.xml文件,会把这个请求交给struts2的filter来处理,并调用这个filter里面的doFilter()方法,在这个doFilter方法中它会参考struts.xml文件,在参考过程中首先会参考struts.xml中的namespace,然后会找这个namespace下对应的action,然后会找对应的result,当找到对应的result后会把请求forword对应的jsp页面。
[quote]
struts-2.1.6_HOME/lib/commons-fileupload-1.2.1.jar
struts-2.1.6_HOME/lib/commons-io-1.3.2.jar
struts-2.1.6_HOME/lib/commons-logging-1.1.jar
struts-2.1.6_HOME/lib/freemarker-2.3.13.jar
struts-2.1.6_HOME/lib/ognl-2.6.11.jar
struts-2.1.6_HOME/lib/struts2-core-2.1.6.jar
struts-2.1.6_HOME/lib/xwork-2.1.2.jar
[/quote]
2.配置web.xml文件(struts2是从一个过滤器开始运行的)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>
3.在项目的src目录下创建struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 设置常量(这里表示设置为开发模式) -->
<constant name="struts.devMode" value="true" />
<!--
访问路径必须与namespace保持一致
extends必须继承name为struts-default或已经继承过struts-default的package
-->
<!--
struts2会先根据url找对应的namespace,然后根据url找这个namespace下对应的action,然后根据action对应的方法的返回值找对应的result
-->
<package name="default" namespace="/user" extends="struts-default">
<default-action-ref name="login_input" />
<action name="login_input">
<result>/login.jsp</result>
</action>
<action name="login" class="com.yx.zzg.action.UserAction"
method="login">
<result>/User_login_success.jsp</result>
</action>
</package>
</struts>
4.编写action类
package com.yx.zzg.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String password;
private String username;
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public String login() throws Exception {
System.out.println("username=" + username + ",password=" + password);
return SUCCESS;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
}
5.编写表单页面
<%@ page language="java" import="java.util.*;" pageEncoding="gbk"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'login.jsp' starting page</title>
</head>
<body>
<form action="login" method="post">
<input type="text" name="username" />
<input type="text" name="password" />
<input type="submit" value="提交">
</form>
</body>
</html>
6.编写提交成功页面
<%@ page language="java" import="java.util.*;" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
${username }
<s:debug />
</body>
</html>
struts2执行过程:
当一个客户端请求过来的时候会把请求交给我们的服务器(tomcat),服务器会根据请求会找到交给哪个application来处理,然后会去找这个application下的web.xml文件,并参考web.xml文件,会把这个请求交给struts2的filter来处理,并调用这个filter里面的doFilter()方法,在这个doFilter方法中它会参考struts.xml文件,在参考过程中首先会参考struts.xml中的namespace,然后会找这个namespace下对应的action,然后会找对应的result,当找到对应的result后会把请求forword对应的jsp页面。