2015-07-07 17 views
5

Tworzę aplikację internetową Struts2.Konfiguracja struts2 regex

Chcę adresu URL takiego jak www.xyz.com/portal/orgCode/signin, ten orgCode jest dynamiczny, więc używam do tego regex.

skonfigurować struts.xml jak:

<constant name="struts.devMode" value="false" /> 
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 
<constant name="struts.action.extension" value=",html,action" /> 
<constant name="struts.action.excludePattern" value=".*unfiltered.*,.*\\.nofilter" /> 
<constant name="struts.multipart.maxSize" value="2097152000"/> 
<constant name="struts.enable.SlashesInActionNames" value="true"/> 
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/> 
<constant name="struts.patternMatcher" value="regex" /> 

<package name="portal" namespace="/portal/{orgCode}" extends="default"> 
    <interceptors> 
     <interceptor name="portalUrlInterceptor" 
        class="com.wtmit.service.portal.interceptor.PortalCommonInterceptor"> 
     </interceptor> 
     <interceptor-stack name="commonPortalUrlInterceptor"> 
      <interceptor-ref name="portalUrlInterceptor" /> 
      <interceptor-ref name="defaultStack" /> 
     </interceptor-stack> 
    </interceptors> 

    <action name="signin" method="signin" 
      class="com.wtmit.service.portal.action.PortalSignInAction">   
     <interceptor-ref name="commonPortalUrlInterceptor"></interceptor-ref> 
     <result name="portalSignIn" type="tiles">portalSignIn</result> 
     <result name="successLogin" type="redirect">home</result> 

    </action> 
</package> 

to działa dobrze, ale adresy URL jak www.xyz.com/mainLogin nie działa na następującej konfiguracji:

<package name="main" namespace="/" extends="default"> 
    <action name="*Login" method="{0}" class="com.service.user.action.LoginAction"> 
     <result name="login" type="tiles">login</result> 
     <result name="successLogin" type="redirect">home</result> 
    </action> 
</package> 

błąd jest

Status HTTP 404 - Nie ma akcji odwzorowanej dla przestrzeni nazw/i nazwy akcji mainLogin.

+1

myślę, że pytanie ma już swoją odpowiedź. .. zobacz Konfiguracja xml jeszcze raz ... – CoderNeji

+0

Pokaż swój pakiet 'default'. –

+0

' ./ error500 < globalnego wyjątku odwzorowania> ' –

Odpowiedz

2

Jesteś mieszanie Wildcards z Advanced Wildcards; Zamiast tego:

<action name="*Login" method="{0}" class="com.service.user.action.LoginAction"> 

Spróbuj użyć tego:

<action name="/{method}/Login" method="{1}" class="com.service.user.action.LoginAction"> 

Powiązane brzmi:

+0

Dziękujemy Ale w moim przypadku ' ..' i ' ' razem nie działa .. kiedy komentuję '' następnie ' ..'działa poprawnie, w tym przypadku odwzorowanie regex nie działa –

+0

jest to' 'praca z [link] (http://example.com/mainLogin) http://example.com/mainLogin? –

+0

działa z 'example.com/main/Login'. Możesz spróbować z '' inaczej –