2011-04-21 10 views
10

परिणाम मैं struts2कोई परिणाम नहीं कार्रवाई के लिए परिभाषित और इनपुट

उपयोग कर रहा हूँ मैं त्रुटि मिलती है कोई परिणाम के रूप में कार्रवाई के लिए परिभाषित करता है और परिणाम इनपुट

<action name="update" method="updatePhase" class="Project"> 
    <result name="updated">/Project.jsp</result> 
</action> 

मेरे कार्रवाई मेरी जावा वर्ग को पास नहीं कर रहा है।

क्या कोई मेरी मदद कर सकता है?

उत्तर

36

त्रुटि संदेश का अर्थ है कि input नाम का परिणाम आपकी कार्रवाई के लिए परिभाषित नहीं किया गया है। परिणाम input स्ट्रेट्स द्वारा लौटाया गया एक डिफ़ॉल्ट परिणाम होता है जब किसी क्रिया में दिए गए पैरामीटर को सत्यापित करने में कोई समस्या होती है। इस प्रकार, मैं की अनुशंसा करता हूं कि यह सुनिश्चित करें कि आप अपने HTML फॉर्म से गुजर रहे पैरामीटर को आपके क्रिया के पैरामीटर से मेल खाते हैं। वर्तनी, डेटा प्रकार इत्यादि की जांच करें

+1

इसके अलावा, सुनिश्चित करें कि आपने एक ही आईडी के साथ एक इनपुट को परिभाषित नहीं किया है –

+0

यह मेरे लिए भी बहुत उपयोगी है, tnx !!! – AndreaNobili

-1

मुझे लगता है कि आपको टैग struts.xml में टैग के तहत पूरी तरह से योग्य नाम देना होगा। फिर यह आपकी कार्रवाई को पार करना शुरू कर देगा।

1

एक समाधान कार्रवाई के लिए "इनपुट" नाम के साथ परिणाम निर्दिष्ट करना है। इस तरह मैंने एनोटेशन के माध्यम से अपनी समस्या हल की।

से पहले:

@Action(value = "sendFeedback", results = { 
    @Result(name = SUCCESS,type = "json"), 
    @Result(name = ERROR,type = "json")}) 

के बाद:

@Action(value = "sendFeedback", results = { 
    @Result(name = SUCCESS,type = "json"), 
    @Result(name = INPUT, type = "json"), 
    @Result(name = ERROR,type = "json")}) 
3

मैं एक ही त्रुटि थी और मैं अपने struts.xml फ़ाइल बदल

from 
<action name="Registeration101" class="Registeration101"> 
     <result name="success">pages/inputform.jsp</result> 
     <result name="done">pages/quoteSuccess.jsp</result> 
    </action> 
to 
    <action name="Registeration101" class="Registeration101"> 
     <result name="success">pages/inputform.jsp</result> 
     <result name="input">pages/inputform.jsp</result> 
     <result name="done">pages/quoteSuccess.jsp</result> 
    </action> 

मूल रूप से परिणाम नाम = "इनपुट" था परिभाषित नहीं

-1

में परिणाम का नाम और struts.xml बराबर होना चाहिए। फिर भी अगर आपको यह त्रुटि मिल रही है तो यह जार फ़ाइल समस्या हो सकती है। इस जार फ़ाइल को अपनी लाइब्रेरी में जोड़ने का प्रयास करें: javassist-3.9.0.GA.jar

0
<action name="update" method="updatePhase" class="Project"> 
    <result name="updated">/Project.jsp</result> 
    <result name="input">/Project.jsp</result> <!-- add input return type as well in your struts.xml --> 
</action> 

आम तौर पर आपके निष्पादन()/अपडेटफेस() को नियंत्रक में वापस लौटने पर अपडेट किया जाता है अगर सब कुछ ठीक हो जाता है। लेकिन अन्य रिटर्न प्रकार हैं जो स्ट्रेट्स परवाह करेंगे।

आप इसे मैन्युअल रूप से अपनी वापसी मान को ठेंगा और इसी

<result name="yourReturnValue">/Project.jsp</result> 

इसी टैग के अंदर के भीतर से संभाल सकते हैं।

आशा है कि यह अभी स्पष्ट है।

0

सरल उत्तर - जब आप गलत इनपुट प्रदान करते हैं तो होता है। उदाहरण के लिए - यदि आपके पास "फर्स्टनाम" नामक एक फ़ील्ड है जो कि चार प्रकार का है और यदि आप गलत इनपुट प्रदान करते हैं (जैसे, int)

0

यदि आपने अपनी कक्षा फ़ाइल (कक्षा = "प्रोजेक्ट में मान्य विधि को ओवरराइड किया है "आपके मामले में), तो इसके लिए आवश्यक इनपुट मानों की आवश्यकता होती है जिन्हें आप वैध विधि में उपयोग करते हैं। आप या तो आवश्यक मान पास कर सकते हैं या मान्य विधि में कुछ मान्यताओं को बदल सकते हैं।

2

मान लीजिए कि आप x.jsp से आ रहे हैं।

कुछ बार जब आप अपनी बीन कक्षा में सत्यापन एनोटेशन डालते हैं, तो आप अपनी क्रिया में उपयोग कर रहे हैं और x.jsp प्रदान नहीं करते हैं, अपवाद फेंक दिया जाता है।

यदि आप इनपुट को सत्यापित नहीं करना चाहते हैं तो बस बीन कक्षा से सत्यापन एनोटेशन को हटा दें।

2

सबसे आम मामला सम्मेलन प्लगइन की उपस्थिति है। उसमें "सम्मेलन" के साथ कुछ भी ढूंढें और उसे हटा दें। एक और विस्तृत विवरण जल्द ही पालन करेगा।

+0

मैं और अधिक विस्तृत विवरण की प्रतीक्षा कर रहा हूं। – simon

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