structs2的应用与structs1.x的区别
【第1步】 安装Struts2
??? 这一步对于Struts1.x和Struts2都是必须的,只是安装的方法不同。Struts1的入口点是一个Servlet,而Struts2的入口点是一个过滤器(Filter)。因此,Struts2要按过滤器的方式配置。下面是在web.xml中配置Struts2的代码:
<display-name>struts 2.0</display-name>
??? <!-- 定义structs2的FilterDispatcher的Filter -->
??? <filter>
??? ??? <!-- 定义核心Filter的名字 -->
??? ??? <filter-name>struts2</filter-name>
??? ??? <!-- 定义核心Filter的实现类 -->
??? ??? <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
??? </filter>
??? <!-- FilterDispatcher用来初始化Structs并且处理所有的web请求 -->
??? <filter-mapping>
??? ??? <filter-name>struts2</filter-name>
??? ??? <url-pattern>/*</url-pattern>
??? </filter-mapping>
? <welcome-file-list>
??? <welcome-file>index.jsp</welcome-file>
? </welcome-file-list>
【第2步】 编写Action类
??? 这一步和Struts1.x也必须进行。只是Struts1.x中的动作类必须从Action类中继承,而Struts2.x的动作类需要从 com.opensymphony.xwork2.ActionSupport类继承。?
动作类的一个特征就是要覆盖execute方法,只是Struts2的execute方法没有参数了,而 Struts1.x的execute方法有四个参数。而且execute方法的返回值也不同的。Struts2只返回一个String,用于表述执行结果(就是一个标志)。
【第3步】 编写ActionForm类
?在Struts1.x中,必须要单独建立一个ActionForm类(或是定义一个动作Form),而在 Struts2中ActionForm和Action已经二合一了
【第4步】 配置Action类
??? 这一步struts1.x和struts2.x都是必须的,只是在struts1.x中的配置文件一般叫struts-config.xml(当然也可以是其他的文件名),而且一般放到WEB-INF目录中。而在struts2.x中的配置文件一般为struts.xml,放到WEB- INF"classes目录中。下面是在struts.xml中配置动作类的代码:
<!DOCTYPE struts PUBLIC
??? "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
??? "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
??? <package name="struts2" namespace="" extends="struts-default">
??? ??? <action name="******" value="submit"/>
??? </form>
? </body>
?
2.?????? success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
? <%@ taglib prefix="s" uri="/struts-tags" %>
?
? <html>
??? <head>
????? <title>显示成功</title>
??? </head>
???
??? <body>???
????? this is successful
??? </body>
? </html>
?
3.?????? failure.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
? <%@ taglib prefix="s" uri="/struts-tags" %>
?
? <html>
??? <head>
????? <title>显示失败</title>
??? </head>
???
??? <body>
????? this is failure
?????
??? </body>
? </html>