1. Struts 2 是WebWork的升级版本
2. 在Struts 2 中Action类可以是一个POJO类
3. Strus2 的结构分为四部分
a. JSP/STRUTS2 标签(视图层)
b. ActionSupport的子类(控制层)
c. 处理业务逻辑和数据逻辑的JavaBean(模型层)
d. 用于保存Strus2配置的Strus.xml文件
4. Strus2核心控制器 FilterDispatch
org.apache.Strus 2.dispatcher.filterpatch
5. 流程
浏览器--->FiterDispatch--->拦截器1--->拦截器2---->拦截器3---Action类--Result---->浏览器
6. Strus2 中虽然也有Action接口,但并不要求一定要实现这个接口,只需要包含execute方法的POJO类就可以作为Strus2的Action类
Action类不仅仅起到了控制器的作用,而且还相当于Strus1的ActionForm类
public class RegsterAction
{
private String username;
public String getUserName(){
return username;
}
public void setUserName(String name){
this.username = name;
}
public String execute() throws Exception{
.....
return "success"
}
}
7. Struts2 Action类的特点
a. Action类可以实现Action接口,也可以继承ActionSupport类,但也可以两者都不实现, 一个包含execute的POJO也可以
b. Action类和ServletAPI是松散耦合的,有利于对Action类进行测试
c. execute 只返回一个字符串,可以匹配任何资源
8. 如何得到
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST)
9. Stru2 标签
<s:iterator value="result">
<tr>
<td><s:property value="key"/></td>
<td><s:property value="value"/>
</td>
</tr>
</s:iterator>
10. 配置文件
web.xml struts.xml,struts.properties
struts.xml会自动包含strus-default.xml, 这个文件配置了Strus 2内建的Bean,结果类型,拦截器和拦截器栈,最后还定义了默认的拦截器栈引用
struts.properties配置了Strus2所需的大量属性
11. DTD
Struts2-core-2.0.11.2.jar 找到 struts2.0.dtd
12 include
struts.xml
<include file="struts-view.xml"/>
12. 配置命名空间
namespace=edit
https://.../web/edit/test.action
根命名空间, 默认命名空间