Struts2中xml配置文件的元素解析

1、package元素

package用来管理action:使用了面向对象的思想

属性:

name:用来定义包名,注意:同一个配置文件中包名是唯一的。

extends:指定所继承的包,一般情况下需要继承struts-default包
        truts-default.xml中定义着struts-default这个包。
        truts-default.xml是在我们的struts.xml加载之前加载。

abstract:指定包是抽象的,只能被继承,含有action的包不能是抽象的,默认值是false。

namespace:名称空间
        名称空间    +   动作名称    =   访问路径
<package name="p1" extends="struts-default" namespace="/a/b">package>





struts2查找动作的方法:

1:先按照用户输入的路径查找路径: /a/b/c/d/action1.action

如果没有找到再向上一层路径找:/a/b/c  找到了(不会再继续向上找)该路径则执行第二步

再向上一层路径找:/a/b  找到了(不会再继续向上找)该路径则执行第二步,找不到继续向上一级找

再向上一层路径找:/a  没找到     找到了(不会再继续向上找)该路径则执行第二步

再找/   也没有的话去默认命名空间下找。
都没找到直接报错                                           

2:找action: 先在当前的命名空间下找   ,如果没有找到则取默认的命名空间(没有写namespace属性的)下找  ,如果还找不到报错

一般只要我们有默认命名空间的pakege标签时,第一步是不会报错的。




action元素

属性:

name:动作名称

class:动作类全名。默认的动作类是:com.opensymphony.xwork2.ActionSupport
是在struts-default.xml中定义的

method:动作类中的方法名称。默认是public String execute(){}
        要求:
            1.public的
            2.返回值必须是String
            3.没有参数

一般样式:

name="action1" class="com.qianfeng.web.action.TestAction1" method="test1">
            <result name="success">/success.jspresult>
        

那我们的动作类是怎么定义和实现的呢?

a.方式一:动作类就是一个POJO(Plain Old Java Object 原始的java对象)
然后定义方法,然后我们就可以这样访问了,需要规定动作类和方法名

        <action name="action1" class="com.qianfeng.web.action.TestAction1" method="test1">
            <result name="success">/success.jspresult>
        action>


方式二:动作类实现com.opensymphony.xwork2.Action接口。
常量:给动作方法返回值用的。用常量可以使你的应用规范和统一。

在实现这个接口时,我们要重写execute()方法,这样我们访问时可以不说明method了

        <action name="action2" class="com.qianfeng.web.action.TestAction2">
            <result name="success">/success.jspresult>
        action>


c.方式三:动作类继承com.opensymphony.xwork2.ActionSupport    推荐使用
这也是我们一般应用的方法,如果不重写execute()方法时,调用ActionSupport中默认的execute()方法

        <action name="action3" class="com.qianfeng.web.action.TestAction3">
            <result name="success">/success.jspresult>
        action>





动作的访问
a.使用通配符:
Struts2中xml配置文件的元素解析_第1张图片
升级版:
Struts2中xml配置文件的元素解析_第2张图片
优先级:绝对匹配优先。使用通配符的按照在配置文件中的先后顺序进行匹配的。


动态执行动作方法 :

动作名!动作方法名.action
动作名!动作方法名

<a href="${pageContext.request.contextPath }/user!addUser.action">添加用户a>

<a href="${pageContext.request.contextPath }/user!updateUser.action">修改用户a>

<a href="${pageContext.request.contextPath }/user!deleteUser.action">删除用户a>

<a href="${pageContext.request.contextPath }/user!findUser.action">查找用户a>

action
Struts2中xml配置文件的元素解析_第3张图片




你可能感兴趣的:(javaEE)