2012-03-29 5 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/Foo/Логин -> OK
  2. локальный: 8080/Foo/бар/Войти -> OK
  3. локальный: 8080/Foo/бар/Baz/Войти -> OK

Я немного смущен, потому что это не то, чего я хочу. Я хочу только разрешить первый случай. Что мне делать?

+0

Я верю (не уверен), это связано с механизмом возврата назад пространства имен, но это всего лишь идея, и у меня мало опыта с этим плагином –

ответ

0

Создайте файл с именем struts.properties в папке «src». Затем добавьте строку ниже.

struts.convention.action.suffix = Controller 
Смежные вопросы