Struts2(二)---Struts.xml的详细配置

来源:互联网 发布:易语言qq登陆器源码 编辑:程序博客网 时间:2024/06/06 05:34
<package name="helloWorld" extends="Strus-default">

说明:
package : 包,struts2使用package来组织模块
name : 必须。用于其他的包应用当前包
extends : 当前包继承哪个包,通常情况下继承Struts-default
注 : struts-default这个包在struts-default.xml文件中定义.
namespace : 可选,如果它没有给出,则以“/”为默认值。若namespace有一个非默认值,则想要调用这个包里的Action,就必须把这个属性所定义的命名空间添加到有关的URI字符串里
例:http://localhost:8080/contextpath/namespace/actionname.action

<action name="product-input" class="com.opensymphony.xwork2.ActionSupport" method="execute">

说明:
action : 一个struts2的请求就是一个action
name : 对应一个struts2请求的名字,不包括扩展名
class : 对应一个能够处理Struts2请求的类,默认值为:com.opensymphony.xwork2.ActionSupport
method : 对应一个 能够处理Struts2请求的类中的方法,默认值为execute

<result name="success" type="dispatcher">/input.jsp</result>

说明 :
result : 结果,表示action方法执行后可能返回一个结果(即action方法执行后,可能去的一个目的地),所以一个action节点可能会有多个result子节点,多个子节点使用name 来区分.
name : 标识一个result,和action方法的返回值对应,默认值为success
type : 表示结果的响应类型
结果类型:
这里写图片描述
常用的有:
*dispatcher(默认的) : 转发,同Servlet中的转发
*redirect : 把响应重定向到另一个资源

<result name="test2" type="redirect">http://www.baidu.com</result>

*redirectAction : 把响应重定向到另一个Action
redirectAction结果类型接受下面这些参数:
- actionName : 指定“目的地”action的名字,它是默认属性
-namespace :用来指定”目的地”action的命名空间,如果没有配置该参数,Struts会把当前Action所在的命名空间作为”目的地”的命名空间

 <result name="index" type="redirectAction">        <param name="actionName">testAction</param>        <param name="namespace">/aa</param>    </result>

注意:通过redirect的响应类型也可以便捷的实现redirectAction的功能
即:

<result name="index" type="redirect">/aa/testAction.do</result>

*chain : 基本用途是构成一个action链:前一个action把控制权转发给后一个action,而前一个action的状态在后一个action中依然保持
chain结果类型接受下面这些参数:
-actionName :指定目标action的名字.它是默认属性
-namespace :用来指定”目的地”action的命名空间.如果没有配置该参数,Struts会把当前action所在的命名空间作为”目的地”的命名空间
-method : 指定目标action方法.默认值为execute
注意:不能通过 type=dispatcher 的方式转发到一个 Action
只能是:

    <result name="test" type="chain">        <param name="actionName">testAction</param>        <param name="namespace">/atguigu</param>    </result>

不能是:

    <result name="test">/atguigu/testAction.do</result>