Struts知识总结
首先来了解几个基础的相关概念:
1、Struts2的核心控件—StructsPrepareAndExecuteFilter核心控制器
StructsPrepareAndExecuteFilter是一个Servlet的过滤器,作用于整个web应用程序,该过滤器对所有请求进行过滤处理。
代码示例(在web.xml中配置):<filter>
<display-name>Struts2的配置</display-name>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
2、业务控制器Action,它是一个POJO类(只有属性和方法的类),其中必须定义execute方法。要知道Structs的控制器就是由这两部分组成的
就像这样的(在POJO类中定义):
public String execute() {
Calculator biz = new Calculator();
double result = biz.add(num1, num2);
// 将计算结果存入Session中
ActionContext.getContext().getSession().put("result", result);
return "cal";
}
3、Structs2的配置文件包括配置Action的Structs.xml文件和配置structs2全局属性structs.properties文件。
配置实例(新建一个structs.xml文件进行配置):
<struts>
<!-- 指定Struts2处于开发阶段,可以进行调试 -->
<constant name="struts.devMode" value="true" />
<!-- Struts2的Action都必须配置在package里 -->
<package name="p1" extends="struts-default" namespace="/admin">
<!-- 定义一个login的Action,实现类为com.dh.LoginAction -->
<action name="login" class="com.dh.ch02.action.LoginAction">
<!-- 配置execute()方法返回值所对应的页面 -->
<result name="error">/error.jsp</result>
<!-- 如果result标签不配置name属性,其默认为success -->
<result>/success.jsp</result>
</action>
</package>
<package name="p2" extends="struts-default">
<action name="add" class="com.dh.ch02.action.AddAction">
<result name="cal">/pages/result.jsp</result>
</action>
</package>
</struts>
(未完待续。。。)