Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
1创建action对象(三种)
1 创建普通的类,不继承任何类,也不实现接口(不用)
2 创建类实现接口Action
public interface Action{
public static final String ERROR="error";
public static final String SUCCESS="error";
public static final String INPUT="error";
public static final String LOGIN="error";
public static final String NONE="error";
public String execute() throws Exception;
}
从action接口可以看到,Action接口定义了五个字符串常量和一个execute方法,每个Action类都实现了
execute方法,该方法返回一个字符串,而接口定义了五个常量用来统一返回值。
public class UserAction extends Action {
public String execute() throws Exception{
return SUCCESS;
}
3 创建类继承ActionSupport(重点)
ActionSupport类实现了Action接口,默认的Action实现类,而且里面提供很多默认方法,包括数据校验,国际化信息等,所以一般程序猿定义Action类都会继承ActionSupport类
public class UserAction extends ActionSupport {
public String execute() throws Exception{
return SUCCESS;
}
创建Struts.xml配置文件(src目录下)
引入约束
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
配置action
<package name="user" extends="struts-default" namespace="/">
<!-- name: 访问名称 -->
<action name="hello" class="cn.entily.action.UserAction" method="{1}">
<!-- 配置方法的返回值到页面,返回值为空不用写 -->
<result name="success">/hello.jsp</result>
</action>
</package>
配置struts过滤器(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>
一般在公司开发中都是分模块开发,每个开发人员都要在struts.xml里面配置action,所以一般都同过写另外个xml文件配置action,然后在引入到struts.xml中。
<!--引入xml文件 -->
<include file="com/abc/action/hello.xml"/>
struts.xml其他配置
全局结果页面
<global-results>
<result name="success"> /hello.jsp</result>
</global-results>
result标签还有一个type属性
type属性表示如何去路径
默认 转发 dispatcher
重定向 redirect