action
作用:
配置动作用的。
属性:
name:动作名称,需要和jsp页面上的url对应。(此处不需要写,也不能写后缀)
class:动作类全名。默认的动作类是:com.opensymphony.xwork2.ActionSupport
是在struts-default.xml中定义的
method:动作类中的方法名称。默认是public String execute(){}
要求:
1.public的
2.返回值必须是String
3.没有参数
关于动作类的定义方式:
方式一:动作类就是一个POJO,非常简单的javabean。
方式二:动作类实现com.opensymphony.xwork2.Action接口。
常量:给动作方法返回值用的。用常量可以使你的应用规范和统一。
常量变量名 对应的值 说明
SUCCESS success 动作方法执行一切OK
ERROR error 动作方法执行时遇到了异常
INPUT input 回显
LOGIN login 一般转向登陆页面
NONE none 不转向任何的视图
方式三:动作类继承com.opensymphony.xwork2.ActionSupport 推荐使用
通配符的配置:(***使用)
原始的基本配置方式
<package name="user" extends="struts-default">
<action name="addUser" class="cn.itcast.web.action.UserAction"
method="addUser">
<result name="success">/addUsersuccess.jsp</result>
</action>
<action name="updateUser" class="cn.itcast.web.action.UserAction"
method="updateUser">
<result name="success">/updateUsersuccess.jsp</result>
</action>
<action name="deleteUser" class="cn.itcast.web.action.UserAction"
method="deleteUser">
<result name="success">/deleteUsersuccess.jsp</result>
</action>
<action name="findUser" class="cn.itcast.web.action.UserAction"
method="findUser">
<result name="success">/findUsersuccess.jsp</result>
</action>
</package> -->
使用通配符进行配置
*表示的就是通配符。
{1}表示的是通配符第一个出现的位置
<package name="user" extends="struts-default">
<action name="*" class="cn.itcast.web.action.UserAction" method="{1}">
<result name="success">/{1}success.jsp</result>
</action>
</package>
通配符的进阶使用方式
<package name="user" extends="struts-default">
<action name="*_*" class="cn.itcast.web.action.{2}Action" method="{1}{2}">
<result name="success">/{1}{2}success.jsp</result>
</action>
</package>
result
作用:
为动作指定结果视图
属性:
name:逻辑视图的名称,对应着动作方法的返回值。默认值是success。
type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher。
type属性的常用取值:
dispatcher:(默认值)
使用请求转发,转向一个页面。
redirect:
使用重定向,转向一个页面。
redirectAction:
重定向到另外一个动作。注意:使用的是重定向。
stream:
文件下载的结果类型
全局视图和局部视图:
局部视图
只能当前动作使用
<package name="p1" extends="struts-default">
<action name="hello" class="cn.itcast.web.action.HelloAction"
method="sayHello">
局部视图
<result name="success">/success.jsp</result>
</action>
</package>
全局视图
所有动作都可以使用
<package name="myDefault" extends="struts-default" abstract="true">
配置全局结果视图
注意:当有局部结果视图和全局结果视图时,先找局部的,如果没有局部的,找全局的
<global-results>
<result name="success" type="redirect">/success.jsp</result>
<result name="login" type="redirect">/login.jsp</result>
</global-results>
</package>
注意:优先级问题,先局部后全局。
原文地址:http://blog.51cto.com/13579086/2086379