读书人

Struts2基础施用_常用转发类型

发布时间: 2012-07-18 12:05:40 作者: rapoo

Struts2基础应用_常用转发类型
Action配置中的各项默认值
1、如果没有为action指定class,默认是ActionSupport
2、如果没有为action指定method,默认执行action中的execute()方法
3、如果没有指定result的name属性,默认值为success
result配置的各种视图转发类型
常用转发类型:dispatcher(默认值)、redirect、redirectAction、piainText。
1、redirect:使用此类型为浏览器重定向,它不能访问WEB-INF下的JSP文件。因此为了测试,我在WebRoot下新建一个JSP文件,并在struts.xml文件中配置。代码如下:
<form action="/xxx">
密码:<input type="password" name="xxx" />
</form>

<action name="huredirect">
<result type="redirect">/employeeinput.jsp</result>
</action>
2、redirectAction:
<action name="huredirectAction">
<result type="redirectAction">helloworld</result>
</action>重定向到名为helloworld的action中。
若要重定向到另外一个包下的action,则要重新设置result,代码如下:

<action name="huredirectAction">
<result type="redirectAction">
<param name="namespace">/test/hu</param> 相当于指定包
<param name="actionName">xxx</param>相当于指定此包下的action
</result>
</action>下面是另外一个包下的名为xxx的action:
<package name="other" namespace="/test/hu" extends="struts-default">
<action name="xxx">
<result>/WEB-INF/page/employeeAdd.jsp</result>
</action>
</package>
3、piainText:显示Java、JSP等源代码
<action name="huplainText">
<result type="plainText">/index.jsp</result>
</action>显示index.jsp的源代码。若有中文,则要改变其读取文件的编码方式,
更改以上result的设置。代码如下:
<action name="huplainText">
<result type="plainText">
<param name="location">/index.jsp</param>
<param name="charSet">UTF-8</param><!-- 指定读取文件的编码 -->
</result>
</action>
4、共用视图
在包下定义一个全局视图,代码如下:
<global-results>
<result name="message">/WEB-INF/page/message.jsp</result>
</global-results>
<action name="manage" method="message"></action>根据action中的method,要在HelloWorldAction中
添加一个message()方法,代码如下:
public String message(){
return "message";
}
但这个全局视图只能在包里面使用,要想其它包也能访问,代码如下:
<package name="base" extends="struts-default">
<global-results>
<result name="message">/WEB-INF/page/message.jsp</result>
</global-results>
</package>其它包只需要继承这个base包就行了
<package name="other" namespace="/test/hu" extends="base">
<action name="manage" method="message"></action>
</package>
<package name="other" namespace="/test/hui" extends="base">
<action name="manage" method="message"></action>
</package>

读书人网 >软件架构设计

热点推荐