zoukankan      html  css  js  c++  java
  • struts2 package元素配置

    package 元素的所有属性及对应功能:

    Attribute Required Description
    name yes key to for other packages to reference ---包名称,用来让别的包继承时使用不能有重复
    extends no inherits package behavior of the package it extends -----当前包所要继承的父包,继承之后,当前包拥有父包中所定义的任意类、拦截器等
    namespace no 用于区分包中相同的类
    abstract no declares package to be abstract (no action configurations required in package)定义当前包为一个抽象的包也就是说不能有action元素在当前包中

    例子:

    假如我有以下的配置段落

    <struts>
    <package name="p1" extends="struts-default">
       <action name="login" class="com.example.action.Login">
        <result>/success.jsp</result>
       </action>

    <action name="login1" class="com.example.action.Login">
        <result>/success.jsp</result>
       </action>

    </package>

    <package name="p2" extends="struts-default" namespace="/testNameSpace">
       <action name="login" class="com.example.action.Login">
        <result>/success.jsp</result>
       </action>
    </package>
    </struts>

    说明:

    a、 包p1没有定义namespace,说明p1用的是默认空间""

    现在有下面的请求:

    1、/工程名/login.action

    ------这个请求对应p1包下的action name=login

    2、/工程名/testNameSpace/login.action

    -----这个请求对应p2包下的action name=login

    3、/工程名/testNameSpace/login1.action

    ----这个请求是请求p2包下的信息的,如果struts在检索了p2包下的所有action后没有检索到当前请求的login1,这时struts会检索前一个命名空间,这里是默认空间下是否有当前请求,检查发现存在login1就得到当前检索

    这里我有个个人的建议:

    无论你的namespace配置或者没配置,也无论配置啥样,你在写跳转的url的时候请你也把

    ‘/工程名/’带上,写成这样:/工程名/命名空间1/命名空间2/actionName.action这样写能保证路径的正确性,当然如果你在写跳转的时候不发晕,可以视你的配置情况加或者不加这个! 

  • 相关阅读:
    获取设备唯一标识 uuid(采用第三方库SSKeychain)
    基于定时器的动画和性能调优
    获取设备的唯一标识uuid
    获取网络状态ios(2G、3G、4G、Wifi)
    equals 为什么要把常量写在前面?
    svn提交更新代码提示Please execute the 'Cleanup' command 的解决办法
    C# 一次循环获取树的两种方法
    递归拼装无限层级菜单树
    mysql错误:Column count doesn't match value count at row 1解决办法
    IDEA 解决Number objects are compared using '==', not 'equals()' 警告
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/4628751.html
Copyright © 2011-2022 走看看