1.访问Servlet API
1.1.在Servlet中我们可以直接HttpServletRequest、HttpServletResponse这些API,而Struts2的Action中没有这些,三种方式访问API:
1.1.1.ActionContext
1.1.2.实现***Aware接口
1.1.3.ServletActionContext
2.Action的搜索
2.1.Action的搜索顺序
3.方法的动态调用
3.1.概念:为了解决一个Action对应多个请求的处理,以免Action过多。
3.2.访问方法的方式(3种)
3.2.1.指定method的方式(在action标签中添加method属性指定方法名)
<action name="addAction" class="com.imooc.action.HelloWorldAction" method=”add”>
<result>/add.jsp</result>
</action>
3.2.2.感叹号的方式(官方不推荐)
3.2.3.通配符的方式(通过*号来替代,达到一个动态访问的效果推荐这种方式)
<action name="helloworld_*" class="com.imooc.action.HelloWorldAction" method=”{1}”>
<result name=”add”>/{1}.jsp</result>
</action>
4.指定多个配置文件
4.1.利用包含配置文件
4.1.1.<include file=”login.xml”></include>
4.1.2.注意每个配置文件的编码:
<constant name=”struts.i18n.encoding” value=”UTF-8”></constant>
5.默认Action
5.1.为了解决用户访问找不到Action,防止出现404这样页面给用户带来不好的体验而设置的默认的Action。
5.2.在package中增加如下代码和增加error.jsp页面
<default-action-ref name=”index”></default-action-ref>
<action name=”index”>
<result>/error.jsp</result>
</action>
6.Struts2的后缀(三种方式)
6.1.将后缀改成html的形式加上如下配置:
6.1.1.在struts.xml文件中:<constant name=”struts.action.extension” value=”html”></constant>
6.1.2.在struts.properties文件中:struts.action.extension = action,do,html,
6.1.3.web.xml的拦截器中配置(不常用)
7.接受参数
7.1.使用Action的属性参数来获取
7.2.使用Domain Model接受参数
7.3.使用ModelDriven接受参数(要Action实现ModelDriven接口)
8.处理结果类型
8.1.数据处理流程
8.2.5个系统内置属性(常量)
8.3.处理结果类型
8.3.1.局部结果
8.3.2.全局结果<global-results></global-results>标签作为一个全局的返回结果所有的Action公用。
8.3.4.<result></result>标签中的type属性,默认值为dispatcher,这个类型支持JSP视图技术。
9.总结