2015-07-07 11 views
5

मैं स्ट्रैट्स 2 वेब ऐप बना रहा हूं।स्ट्रूट 2 रीगेक्स कॉन्फ़िगरेशन

मुझे www.xyz.com/portal/orgCode/signin, जैसे यूआरएल चाहिए यह orgCode गतिशील है, इसलिए मैं इसके लिए regex का उपयोग कर रहा हूं।

मैं कॉन्फ़िगर 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> 

इस ठीक काम कर रहा है, लेकिन www.xyz.com/mainLogin जैसे URL निम्नलिखित विन्यास के लिए काम नहीं कर रहा:

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

त्रुटि

है

HTTP स्थिति 404 - नामस्थान/और कार्रवाई नाम mainLogin के लिए मैप किए गए कोई क्रिया नहीं है।

+1

मुझे लगता है कि आपके सवाल का पहले से ही अपने उत्तर नहीं है। .. देखें xml विन्यास एक बार फिर ... – CoderNeji

+0

अपना 'डिफ़ॉल्ट' पैकेज दिखाएं। –

+0

'<पैकेज नाम =" डिफ़ॉल्ट "विस्तार =" स्ट्रैट्स-डिफ़ॉल्ट, जेसन-डिफ़ॉल्ट "> <परिणाम-प्रकार><परिणाम-प्रकार नाम =" टाइल्स "वर्ग =" org.apache.struts2.views.tiles.TilesResult "/><परिणाम-प्रकार नाम =" जेसन "वर्ग =" org.apache.struts2.json.JSONResult "/> <वैश्विक परिणाम> <परिणाम नाम =" sessionExpire "प्रकार = "redirect"> ./ <परिणाम नाम = "securityerror" type = "टाइल"> error500 <वैश्विक-अपवाद-मैपिंग> <अपवाद-मानचित्रण अपवाद = "java.lang। अपवाद "परिणाम =" सुरक्षा आतंक "/> ' –

उत्तर

2

आप Advanced Wildcards साथ Wildcards मिश्रण कर रहे हैं; बजाय इस की:

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

कोशिश इस का उपयोग करते हुए:

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

संबंधित पढ़ता है:

+0

धन्यवाद लेकिन मेरे मामले में '<पैकेज नाम =" पोर्टल "नामस्थान ="/पोर्टल/{orgCode} "विस्तार =" डिफ़ॉल्ट "> ..' और '<पैकेज नाम =" मुख्य "नामस्थान ="/" फैली हुई है = "डिफ़ॉल्ट"> <कार्रवाई नाम = "* लॉग इन" विधि = "{0}" वर्ग = "com.service.user.action.LoginAction"> ' एक साथ काम नहीं कर रहा है .. जब मैं '<निरंतर नाम = "struts.patternMatcher" मान = "regex" /> ' तो ' <पैकेज नाम = "मुख्य" नामस्थान = "/" विस्तारित करता है = "डिफ़ॉल्ट"> ..'ठीक काम कर रहा है और उस मामले में regex मैपिंग काम नहीं कर रहा है –

+0

यह ' '[लिंक] के साथ काम करना (http://example.com/mainLogin) http://example.com/mainLogin? –

+0

यह 'example.com/main/login' के साथ काम कर रहा है। आप ' अन्यथा –

संबंधित मुद्दे