[struts2应用技巧] 让action名称中支持斜杠

在开发过程中,struts.xml的配置过于复杂重复,所以想到了用通配符"*"。而url里面包含多个层级的话,又需要分开定义不同的包。所以想能不能在action的名称中加入斜杠。在google上查了一下资料,发现可行。

http://struts.apache.org/2.1.8/docs/wildcard-mappings.html

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="ptsystem" extends="json-default" namespace="/">
    
        
        <action name="view*" class="{1}Action" method="view{1}">
            <result name="success">/setting/{1}List.jsp</result>
        </action>
        
        <action name="*/toadd*" class="{2}Action" method="add{2}">
            <result name="success">{1}/{2}Add.jsp</result>
        </action>
        
 
    </package>
    <!-- 上传附件定义 -->
    <constant name="struts.multipart.parser" value="jakarta">constant</constant>
    <constant name="struts.i18n.encoding" value="gbk" />
    <constant name="struts.enable.SlashesInActionNames" value="true"/>
</struts>

只需要加入一个常量定义,便可支持action名称中使用斜杠。

 <constant name="struts.enable.SlashesInActionNames" value="true"/>


posted @ 2012-09-24 17:50  Enix  阅读(1837)  评论(1编辑  收藏  举报