2012-03-29 56 views
2

我正在使用struts2-convention-plugin 2.3.1.2。Struts2 Convention Plugin Action Url

<constant name="struts.ui.theme" value="simple" /> 
    <constant name="struts.convention.default.parent.package" value="qqq"/> 
    <constant name="struts.convention.package.locators.basePackage" value="zzz.yyy.xxx.action"/> 
    <constant name="struts.enable.SlashesInActionNames" value="true"/> 
    <constant name="struts.mapper.alwaysSelectFullNamespace" value="true"/> 

    <package name="qqq" extends="struts-default" namespace="/"> 
     <!-- 
     Some package configurations 
     --> 
    </package> 

struts2.xml配置如上。

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
    <init-param> 
     <param-name>actionPackages</param-name> 
     <param-value>zzz.yyy.xxx.action</param-value> 
    </init-param> 
    </filter> 

    <filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>*</url-pattern> 
    </filter-mapping> 

web.xml如上所述,而tomcat的上下文根是/ foo。

Quetstion

我放在了LoginAction到zzz.yyy.xxx.action包, 和部署的应用程序,并且我有以下结果。

  1. 本地主机:8080 /富/登录 - >确定
  2. 本地主机:8080 /富/酒吧/登录 - >确定
  3. 本地主机:8080 /富/酒吧/巴兹/登录 - > OK

我有点尴尬,因为这种行为不是我想要的。 我想只允许第一种情况。 我该怎么办?

+0

我相信(不知道)这是由于命名空间回退机制S2有,但这只是一个想法,我自己有这个插件小exp – 2012-03-29 05:54:00

回答

0

在“src”文件夹中创建一个名为struts.properties的文件。然后将下面的行添加到它。

struts.convention.action.suffix = Controller