zoukankan      html  css  js  c++  java
  • 【Web】Struts之namespace

    ZZ:struts2学习:配置篇之namespace

    struts1中是没有命名空间这个概念的,通过命名空间我们可以将所有的action配置划分为一个个逻辑单元,每个单元都有它自己的标识前缀。命名控件可以避免action命名的冲突。每个命名空间下有可以有一个叫做”help”action,并且有着各自不同的实现,当然在同一个命名空间下最好是不要出现两个名字一样的action。当命名空间的前缀出现在浏览器的URI中时,标签会意识到命名空间,因此我们不必将命名空间嵌套在表单和链接中。

    默认的命名空间是空字符串””,也就是不设置namespace属性时候的命名空间。我们在匹配一个action的时候,先到它指定的命名空间中去找,如果没有再到这个默认的命名空间中去找。Struts2还支持根命名空间(“/”),当一个request直接请求context path下面的资源时,struts2会首先到跟命名空间下去寻找匹配的action,例如请求是http://server/myapp/bar.action,那么我们首先会去”/”命名空间下去寻找这个action,下面给给出了一个namespace的样本:

     1 <package name="default">
     2     <action name="foo" class="mypackage.simpleAction>
     3         <result name="success" type="dispatcher">greeting.jsp</result>
     4     </action>
     5     <action name="bar" class="mypackage.simpleAction">
     6         <result name="success" type="dispatcher">bar1.jsp</result>
     7     </action>
     8 </package>
     9 <package name="mypackage1" namespace="/">
    10     <action name="moo" class="mypackage.simpleAction">
    11         <result name="success" type="dispatcher">moo.jsp</result>
    12     </action>
    13 </package>
    14 <package name="mypackage2" namespace="/barspace">
    15     <action name="bar" class="mypackage.simpleAction">
    16         <result name="success" type="dispatcher">bar2.jsp</result>
    17     </action>
    18 </package>

    关于如何从URI映射到一个action中我做了一些测试,发现可以遵循如下的一条规则:

    1.获得请求路径的URI,例如url是:http://server/myapp/path1/path2/path3/test.action

    2.首先寻找namespace/path1/path2/path3package,如果存在这个package,则在这个package中寻找名字为testaction,若找到则执行,否则报错;如果不存在这package则转步骤3

    3.寻找namespace/path1/path2package,如果存在这个package,则在这个package中寻找名字为testaction,若找到则执行,否则报错;如果不存在这个package则转步骤4

    4.寻找namespace/path1package,如果存在这个package,则在这个package中寻找名字为testaction,若找到则执行,否则报错;如果仍然不存在这个package 就去namaspace为空字符串的package下面去找名字为testaction,如果还是找不到,页面提示找不到action

  • 相关阅读:
    Windows Power Shell
    一个自律的人有多可怕!
    Android之TextureView浅析
    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 介绍SP2013中远程APIs
    敌兵布阵(线段树)
    kendo AutoComplete实现多筛选条件
    Android 65K问题之Multidex原理分析及NoClassDefFoundError的解决方法
    让我心碎的五道题
    输入一列数组,输出它的逆序数组
    centos下配置防火墙port失败
  • 原文地址:https://www.cnblogs.com/lqminn/p/3503402.html
Copyright © 2011-2022 走看看