2015-07-07 22 views
5

Bir Struts2 web uygulaması oluşturuyorum.Struts2 regex yapılandırması

Bir URL www.xyz.com/portal/orgCode/signin gibi bu orgCode dinamiktir istiyorum, bu yüzden bunun için regex kullanıyorum.

Ben yapılandırmak gibi struts.xml:

<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> 

bu iyi çalışıyor, ancak www.xyz.com/mainLogin gibi URL'leri aşağıdaki yapılandırma için çalışmıyor:

<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> 

hata

olduğunu

HTTP Durum 404 - ad alanı/ve action name mainLogin için bir eşleme yok.

+1

i Sorunuzun zaten cevabı vardır düşünüyorum. .. bakın xml yapılandırması bir kez daha ... – CoderNeji

+0

'Varsayılan 'paketinizi gösterin. –

+0

' error500 ' –

cevap

2

Sen Advanced Wildcards ile Wildcards karıştırma; Bu yerine: Bu kullanarak

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

denemede:

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

İlgili okur:

+0

Teşekkür ederiz Ama benim durumumda ' ..' ve ' ' çalışmıyor .. zaman i ' sonra ' ' yorumu Giriş yapın "method =" {0} "class =" com.service.user.action.LoginAction "> ..'iyi çalışıyor ve bu durumda regex mapping çalışmıyor –

+0

bu' [[link] ile çalışma (http://example.com/mainLogin) http://example.com/mainLogin? –

+0

, example.com/main/Login' ile çalışıyor. ' '' ile deneyebilirsiniz. Aksi halde –