2012-12-13 11 views
11

मेरे पास स्ट्रैट्स में एक बुनियादी सवाल है क्यों हमें <global-forwards> और <global-exceptions> स्ट्रैट्स-config.xml में क्यों होना चाहिए। अगर हम <action-mappings> के साथ ही वही चीज़ें प्राप्त कर सकते हैं।हमें स्ट्रैट्स में वैश्विक-आगे और वैश्विक अपवादों की आवश्यकता क्यों है?

उत्तर

34
<global-forwards> 

आप update.do की तरह अलग अलग यूआरएल, insert.do delete.do आदि के लिए उपयोगकर्ता नाम पासवर्ड मान्य रहे हैं, तो यह एक वैध उपयोगकर्ता है पर विचार करें यदि आप प्रवेश के लिए आगे नहीं action.if आवश्यक आगे बढ़ने के लिए की जरूरत है नीचे

<action-mappings>   
    <action path="/insert" type="controller.Insert"> 
     <forward name="success" path="/insert.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action>  
    <action path="/update" type="controller.Update"> 
     <forward name="success" path="/update.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action> 
    <action path="/delete" type="controller.Delete"> 
     <forward name="success" path="/delete.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action>   
</action-mappings> 
इसके बजाय दोहरा <forward name="failure" path="/login.jsp"/> आप की तरह

नीचे
<global-forwards> 
    <forward name="failure" path="/login.jsp"/> 
</global-forwards> 

अब आप रेमो कर सकते हैं <global-forwards> में यह घोषणा कर सकते हैं की

मैपिंग page.See एक्शन मैपिंग में है।


<global-exceptions> 

आप प्रत्येक आप विश्व स्तर पर नीचे के रूप में घोषणा कर सकते हैं के लिए मैन्युअल रूप से निपटने के बजाय java.Io अपवाद प्राप्त होता है।

<global-exceptions> 
    <exception type="java.io.IOException" path="/pages/error.jsp"/> 
</global-exceptions> 

मुझे आशा है कि यह आपकी समस्या को स्पष्ट करे।

+0

धन्यवाद आदमी बहुत अच्छी व्याख्या है लेकिन इसे थोड़ा लंबा पाया। स्पष्टीकरण के लिए – user1900662

+0

धन्यवाद, – Apache

+0

स्पष्टीकरण के लिए धन्यवाद, मान लें कि HTTP 500 त्रुटि पृष्ठ है और लॉगिन पृष्ठ पर वापस जाने की आवश्यकता है, <आगे नाम = "login_form" .... />, यह कैसे किया जा सकता है, धन्यवाद – Apache

3

आप Struts 1 के बारे में बात कर रहे हैं, global-exceptionsExceptionHandlers कि सभी कार्यों के लिए कुछ Exception के साथ संबंधित हैं, इसलिए आप कार्रवाई प्रति यह घोषणा करते हैं और दोहराव से बचने की जरूरत नहीं है।

Global-forwards एक ही विचार है। यदि आपके पास अलग-अलग कार्रवाइयों में एक ही पथ के साथ आगे है, तो आप केवल एक global-forward घोषित करके नकल से बच सकते हैं और सभी क्रियाएं इसका उपयोग कर सकती हैं। global-forwards के साथ आप अपने जेएसपीएस में हार्ड-कोड किए गए यूआरएल से भी बच सकते हैं, उदाहरण के लिए, आप <forward name="loginLink" path="/login" /> और फिर अपने जेएसपी <html:link forward="loginLink">Login</html:link> में वैश्विक-अग्रेषित घोषित कर सकते हैं।

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