Struts2配置文件详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2配置文件详解相关的知识,希望对你有一定的参考价值。

package
作用:
在struts2的配置文件中引入了面向对象思想,使用了分包管理。易于管理动作类。便于模块化开发动作类。
属性:
name:包的名称。必须写。且必须唯一。
extends:一般情况下需要继承struts-default包,但不是必须的。不过如果不继承的话,将无法使用struts2提供的核心功能。struts-default.xml中定义着struts-default这个包。而struts-default.xml是在我们的struts.xml加载之前加载。
abstract:把包声明为抽象包,抽象包就是用来被继承的。只要是没有<action>元素的包,就可以声明为抽象包。
namespace:名称空间。
名称空间 + 动作名称 = 访问路 径
packege中的namespace
namespace的默认值:
a.不写该属性
b.写了该属性,取值是一个"".
注意:默认值不是/
动作类的搜索顺序:
先找名称空间,再找动作名称。

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>

注意:优先级问题,先局部后全局。

以上是关于Struts2配置文件详解的主要内容,如果未能解决你的问题,请参考以下文章

struts2中struts.xml配置文件详解未整理

struts2中struts.xml配置文件详解未整理

struts2学习笔记--struts.xml配置文件详解

struts2配置文件详解

Struts2 XML配置详解

struts2中struts.xml配置文件详解