a.1.当一个action响应的时候,服务器会定向到与之相对应的视图,但是当要定向到另外一个action的视图的时候,需将视图名称改为另外一个action的name就好,如果要定向的另外一个action不在同一个包内需做处理
<result type="xxx">
<param name="actionName">xxx</param>
<param name="namespace">/xxx</param>
</result>
2.当action的name为plainText时,服务器向客服端展现的为视图源码,当视图中有中文时需做以下处理
<result type="plainText">
<param name="location">对应视图</param>
<param name="charset">UTF-8</param>
</result>
3.重定向时,只需将result改为重定向的视图即可
4.不同的包定向同一个全局视图时,只需继承含有全局视图的包然后再进行处理
b.1.为action属性注入值
在声明的类中设置好属性,并生成get和set方法,在struts.xml中作以下部署
<action name="xxx" class="xxx" method="execute">
<param name="属性名称">所传参数</param>
<result name="success">响应的视图</result>
</action>
2.指定struts2处理的请求后缀
在struts.xml中作以下处理
<constant name="struts.action.extension" value="do"/>
改后访问时要以.do为后缀
如果要以多个为后缀,则需将value="action,do"改后即可
3.当用户请求到达时,Filter会过滤用户的请求,如果用户请求的路径不带后缀或者是以.action为后缀结尾,这时请求将被转入Struts2框架处理,否则Struts2框架略过该请求的处理,当请求转入Struuts2框架处理时会先经过一系列的拦截器,然后再到Action,于Struts1不同,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的
4.在大部分应用里,随着应用模块的增加,系统中Action的数量会大量增加最终会导致struts.xml文件变得非常臃肿,为了提高struts.xml文件的可读性我们可以把每个模块分离开来单独指定一个配置文件最后在struts.xml中包含
5.使用通配符定义action,在struts.xml中作以下处理
定义常量<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<action name="tongpeifu_*" class="xxx" method="{1}">
<result name="success">视图路径</result>
</action>
{1}代表的是前面的*
要改变action的调用方法,只需将地址栏的URL改变即可,例如
http://localhost:8080/xxx/tongpeifu_execute.action或者
http://localhost:8080/xxx/tongpeifu_方法名.action
5.请求参数接受有简单型和复合型两种,当属性较多时一般采用复合型传参,用get方式传参时,在地址栏中传参数即可,用post方法传参时,通过表单响应action请求,并交给相应的方法处理后再通过对应的视图展现出来