Struts2 Convention Plugin Action Url

时间:2012-03-29 05:10:37

标签: java struts2

我正在使用struts2-convention-plugin 2.3.1.2。

   <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. localhost:8080 / foo / login - &gt;行
  2. localhost:8080 / foo / bar / login - &gt;行
  3. localhost:8080 / foo / bar / baz / login - &gt;行
  4. 我有点尴尬,因为这种行为不是我想要的。 我只想允许第一种情况。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

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

struts.convention.action.suffix = Controller