मैं एक समग्र घटक लागू कर रहा हूं और मुझे एक समस्या मिली जो मुझे समाधान नहीं मिला।JSF2.0 - वैकल्पिक विधि अभिव्यक्ति के साथ समग्र घटक
मैंने अपने गुण निर्दिष्ट किए हैं जो पृष्ठ लेखक द्वारा पारित किए जा सकते हैं या नहीं, लेकिन मैं एक विधि विशेषता (क्रिया के लिए एक विधि अभिव्यक्ति) निर्दिष्ट नहीं कर सका, अगर यह पारित नहीं किया गया था, तो समग्र घटक नहीं है समग्र में विधि विशेषता का उपयोग करें: कार्यान्वयन टैग।
यहाँ मेरी कोड:
<composite:interface>
<composite:attribute name="namePrompt" required="true"/>
<composite:attribute name="actionMethod" method-signature="java.lang.String action()" required="false"/>
<composite:attribute name="showComponent" default="false"/>
</composite:interface>
<composite:implementation>
<div>
<p:commandLink actionListener="#{cc.attrs.actionMethod}"
rendered="#{cc.attrs.showComponent}"
>
<h:outputText value="#{cc.attrs.namePrompt}"/>
</p:commandLink>
</div>
</composite:implementation>
जब इसे का उपयोग, मैं "actionMethod" विशेषता निर्दिष्ट नहीं किया। इस तरह:
<util:foo namePrompt="SomeName" showComponent="true"/>
लेकिन मैं त्रुटि संदेश मिलता है:
javax.faces.FacesException: Unable to resolve composite component from using page using EL expression '#{cc.attrs.actionMethod}'
वहाँ यह करने के लिए कोई तरीका है?
आप 'actionListener' को वैकल्पिक विशेषता पारित कर सकते हैं। आप मामले का क्या उपयोग करते हैं, आपको क्या लगता है कि यह तब होना चाहिए जब 'actionListener' को हल नहीं किया गया है और' कमांडलिंक 'प्रदान किया गया है? – partlov
हां लिंक घटक प्रदान किया जाता है, लेकिन जब लिंक घटक में क्लिक क्रिया होती है तो यह शिकायत करता है कि मैंने एक्शन विधि विधि के लिए एक विधि परिभाषित नहीं की है। लेकिन यह मेरा इरादा है, कभी-कभी मैं actionMethod विशेषता के लिए एक क्रिया विधि को परिभाषित नहीं करना चाहता हूं। क्या यह संभव है? मैंने सोचा कि 'आवश्यक = झूठी' समस्या को हल करें। –