2010-03-16 16 views
9

मैंने URL पैरामीटर के माध्यम से जेएसएफ पृष्ठों पर पैरामीटर पास करने का कोई तरीका नहीं ढूंढ पाया है।जेएसएफ को यूआरएल पैरामीटर कैसे पास करें?

http://www.example.com/jsfApp.jsp?param1=value1&param2=value2 

क्या कोई मुझे इस दिशा में सही दिशा में इंगित कर सकता है?

उत्तर

21

जैसा कि आप जेएसपी का उपयोग कर रहे हैं, मुझे लगता है कि आप जेएसएफ 1.x का उपयोग कर रहे हैं।

क्वेरी पैरामीटर के साथ लिंक बनाने के लिए, का उपयोग h:outputLinkf:param साथ:

<h:outputLink value="page.jsf"> 
    <f:param name="param1" value="value1" /> 
    <f:param name="param2" value="value2" /> 
</h:outputLink> 

value ईएल की मदद से गतिशील रूप से सेट किया जा सकता।

स्वतः प्रबंधित सेम में उन्हें सेट करने के लिए

, आप faces-config.xml में managed-property के रूप में प्रत्येक परिभाषित करने की जरूरत:

<managed-bean> 
    <managed-bean-name>bean</managed-bean-name> 
    <managed-bean-class>com.example.Bean</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
    <managed-property> 
     <property-name>param1</property-name> 
     <value>#{param.param1}</value> 
    </managed-property> 
    <managed-property> 
     <property-name>param2</property-name> 
     <value>#{param.param2}</value> 
    </managed-property> 
</managed-bean> 

imlicit ईएल चर #{param} अनुरोध पैरामीटर मानचित्र को संदर्भित करता है के रूप में आप यह सर्वलेट एपीआई से पता है। बीन निश्चित रूप से पहले से ही param1 और param2 गुणों को निश्चित रूप से उपयुक्त गेटर्स/सेटर्स के साथ होना चाहिए।

आप कुछ तर्क वे निर्धारित किया गया जाता है सीधे के बाद अमल @PostConstruct एनोटेशन का उपयोग करना चाहते हैं तो: JSF में चारों ओर

@PostConstruct 
public void init() { 
    doSomethingWith(param1, param2); 
} 
गुजर पैरामीटर के बारे में

अधिक संकेत के लिए और सामान उस तरह, आप उपयोगी हो सकता है।

जेएसएफ 2.x दृष्टिकोण बैकिंग बीन क्लास में @ManagedProperty या <f:viewParam> लक्ष्य दृश्य में उपयोग करेगा। यह प्रश्न भी देखें: ViewParam vs @ManagedProperty(value = "#{param.id}")

+0

बढ़िया! धन्यवाद!! – Ben

+0

आपका स्वागत है। – BalusC

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