zoukankan      html  css  js  c++  java
  • struts2中的namespace意义

    <package name="user" namespace="/user" extends="struts-default">
             <action name="logon" class="cn.net.cipe.ots.user.actions.UserAction" method="logon">
                <result name="success">/JSP/main.jsp</result>
                <result name="input">/JSP/login.jsp</result>
                <result name="error">/JSP/login.jsp</result>
            </action>

    </package>

    说明:

    此user的意思是WebRoot下必须有一个名为user的文件夹。

    那么如果在jsp里这样三种写法:

    第一种

    <form action="logon.action" >

    .....

    </form>

    第二种

    <form action="/user/logon.action" >

    .....

    </form>

    第三种

    <s:form action="logon.action" namespace="/user" >

    .....

    </s:form>

    第一种写法可以通过测试,原因是FilterDispatcher会去package的根目录及下面的子目录去搜logon这个action

    第二种写法是正规写法,可以通过测试,因为FilterDispatcher把form的跳转分解为logon.action和nanespace=/user,然后在package下直接命中namespace为"/user"的那个包。

    第三种写法,很不幸,不能通过测试,原因是s:form这个标签居然不会在生成html页面时候把namespace的值给加到form 的action属性里面去。。。。。

    那么与第三种情况正相反,如果你用s:url的话,一定要写namespace,见下例:

    <s:url href="/user/logon.action"/>这种写法极容易出错,原因是不写namespace的话,产生html代码时候很混乱

    <s:url href="logon.action" namespace="/user"/>正确写法!

  • 相关阅读:
    rkhunter和chkrootkit
    Chkrootkit安装配置教程 – Linux后门入侵检测
    安装asterisk以及asterisk-gui
    职场最让人鄙视哪种招聘面试老板
    谷歌为何大举收购机器人公司?
    evercookie
    美科学家发现量子纠缠幽灵与宇宙虫洞有关
    Storm-YARN
    Twitter开源Summingbird:近原生编码下整合批处理与流处理
    基于keepalived的redis通信链接数测试
  • 原文地址:https://www.cnblogs.com/azhqiang/p/4091851.html
Copyright © 2011-2022 走看看