2008-12-17 15 views
7

मुझे किसी क्रिया से किसी अन्य क्रिया में कुछ पैरामीटर पास करना होगा, उदाहरण के लिए किसी ईवेंट का पता लगाने के लिए।क्रियाओं के बीच Struts2 पैरामीटर

ऐसा करने का सबसे अच्छा तरीका क्या है?

मैं सत्र पैरामीटर का उपयोग नहीं करता। धन्यवाद

उत्तर

11

मान लें कि आप एक क्रिया के भीतर सर्वरसाइड हैं और कुछ मानकों के साथ एक और कार्रवाई करने की इच्छा रखते हैं।

आप s का उपयोग कर सकते हैं:

<s:action name="myAction" ignoreContextParams="true" executeResult="true"> 
     <s:param name="foo" value="bar"/> 
    </s:action> 

तुम भी एक पैरामीटर के साथ एक मानक struts-xml परिणाम प्रकार का उपयोग कर सकते हैं: संभवतः मूल कार्रवाई से अतिरिक्त/अन्य मानकों के साथ, एक और कार्रवाई को लागू करने की कार्रवाई टैग:

<result name="success" type="redirect" > 
     <param name="location">foo.jsp?foo=${bar}</param> 
     <param name="parse">true</param> 
     <param name="encode">true</param> 
</result> 

आप एक ग्राहक के पक्ष चाहते हैं अनुप्रेषित आप एक यूआरएल वापस उचित मानकों के साथ ग्राहक के लिए भेजने के लिए, और हो सकता है कुछ जावास्क्रिप्ट का उपयोग वहाँ जाने के लिए किया है।

 <s:url action="myAction" > 
      <s:param name="foo" value="bar"/> 
     </s:url> 
+0

receiveaction साधन में उपयोगकर्ता आईडी प्राप्त करने के लिए जा रहे हैं,

यह दोनों कार्यों में होना चाहिए, मैं इस पता लगाना मुसीबत का एक बहुत कुछ था ...> स्ट्रैट्स 2.1.8.1 में काम नहीं करता है। स्ट्रैट्स 2.2.1 में अपग्रेड करने के बाद सबकुछ ठीक है। उस पर कहीं भी एक नोट नहीं मिला है। – grefab

1
<td> 
    <s:url id="url" action="Logging"> 
     <s:param name="m_userNameInAction"><s:property value="m_userNameInForm"/></s:param> 
    </s:url> 
    <s:a href="%{url}">English</s:a> 
</td> 
+0

क्षमा करें ?? क्या मुझे जवाब देना चाहिए? कृपया, स्कोर के लिए स्पैम देखो 'मत करो। – Giancarlo

1

struts कोर टैग में उपयोग यूआरएल टैग, नमूना नीचे दिया गया है

   <s:url var="idurl" action="EditEnterprise"> 
        <s:param name="enterpriseId"> 
         <s:property value="enterpriseId" /> 
        </s:param> 
       </s:url> 
0

वास्तव में, कार्यक्षेत्र और servletConfig इंटरसेप्टर struts2 में उपयोग किया जा सकता स्वत: पॉप कार्रवाई संदर्भ के लिए, पैरामीटर, (अनुरोध/सत्र, आदि)

1

वास्तव में आप एक क्रिया से दूसरे क्रिया में अपने एक क्रिया पैरामीटर मान को पारित करने जा रहे हैं।

बस उसी नाम के साथ बीन चर शामिल हैं। आप कौन सा पैरामीटर कार्रवाई (रिसीवर एक्शन) पर प्राप्त करने जा रहे हैं।

<action name="ForwardAction" class="..."> 
     <result name="success" type="chain">ReceiverAction</result> 
</action> 

फॉरवर्डएक्शन पैरामीटर रिसीवरएक्शन को अग्रेषित किया जाएगा। आप इसका उपयोग कर सकते हैं। लेकिन दोनों कार्यों में एक ही बीन नाम शामिल करें। ।। <रों: कार्रवाई

अगर आप

private int userid; 

public void setUserid(int id){ 
    this.userid = userid; 
} 

public int getUserid(){ 
    return userid; 
} 
संबंधित मुद्दे