2010-08-30 14 views
10

मैंने जेएसएफ पेज से एडमिनिस्ट्रेटर के माध्यम से प्रबंधित लाइब्रेरी से पैरामीटर पास करने के बारे में पढ़ा है। क्या एक सरल क्रिया विधि में पैरामीटर पास करना भी संभव है?जेएसएफ 2 एक्शन पैरामीटर

पढ़ने के लिए धन्यवाद ...


आप दोनों अपने सलाह के लिए धन्यवाद! तो अब जो हरी टिक हकदार

<h:commandLink id="link" action="#{overviewController.showDetails}" > 
    <f:setPropertyActionListener target="#{overviewController.show_id}" value="#{project.id}" /> 
    <h:outputText value="#{project.title}" /> 
</h:commandLink> 

: मैं :-)

तुम्हारे बिना खो जाएगा मेरे लिए काम किया निम्नलिखित? :- क्या मैं उनमें से दो दे सकता हूं?

उत्तर

13

हां। कोई एक:

action="#{bean.method(param)}" 

या

<h:commandButton .. > 
    <f:setPropertyActionListener 
     target="#{bean.targetProperty}" value="#{param}" /> 
</h:commandbutton> 

(और विधि में सेम संपत्ति का उपयोग करें)

13

आप इस रूप में पैरामीटर के बारे में बात कर रहे हैं?

<h:commandButton action="#{bean.action(param)}" /> 

यह ईएल कार्यान्वयन पर निर्भर करता है। केवल जेबॉस ईएल और जेएसपी 2.2 ईएल ऐसा करने में सक्षम है। JBoss EL को कैसे स्थापित करें this answer में वर्णित है।

वैकल्पिक रूप से, आप केवल f:param का उपयोग भी कर सकते हैं। f:param केवल h:commandLink के साथ काम करने के लिए प्रयुक्त होता था, लेकिन चूंकि जेएसएफ 2.0 यह h:commandButton पर भी काम करता है। जैसे

<h:commandButton action="#{bean.action}"> 
    <f:param name="foo" value="bar" /> 
</h:commandButton> 
एक @ManagedProperty जो कामयाब सेम संपत्ति के रूप में पैरामीटर सेट के साथ

:

@ManagedProperty("#{param.foo}") 
private String foo; 
यह आप फिर भी मानक प्रकार तक सीमित किया गया साथ

(String, Number, Boolean)। एक वैकल्पिक f:setPropertyActionListener है:

<h:commandButton action="#{bean.action}"> 
    <f:setPropertyActionListener target="#{bean.foo}" value="#{otherBean.complexObject}" /> 
</h:commandButton> 

यानी, अधिक तरीकों के साथ-साथ हैं, लेकिन यह सब एकमात्र कार्यात्मक आवश्यकता और सेम कार्यक्षेत्रों पर निर्भर करता है। शायद आपको सभी के बाद "पैरामीटर" पास करने की आवश्यकता नहीं है।

3

नया नमूना।

public String action(Object complexObject) 

* नोट:: सुनिश्चित करें कि आप "अल-impl शामिल कर JSF2 कि कार्रवाई विधि का कोई पैरामीटर प्राप्त करता है ताकि आप विधि हो जाएगा ManagedBean पर

<h:commandButton action="#{bean.action(otherBean.complexObject)}"> 

करने में सक्षम हो की अनुमति देता है -2.2.jar "*

+0

यह जेएसएफ विशिष्ट नहीं है। यह ईएल विशिष्ट है और सर्वलेट 3.0/जेएसपी 2.2 का हिस्सा है (टॉमकैट 7, ग्लासफ़िश 3, जेबॉस एएस 6, आदि)। तो जब आप सर्वलेट 2.5 पर जेएसएफ 2.0 चलाते हैं, तो यह काम नहीं करेगा। यह जेएसएफ संस्करण परवाह किए बिना है। – BalusC

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