2012-04-27 15 views
7

मैं अपने जेएसएफ समग्र घटक में कुछ जावा क्रिप्ट को कार्यान्वित करना चाहता हूं, लेकिन मुझे आईडी के साथ समस्या है। मेरी जावा स्क्रिप्ट के साथ:समग्र घटक और आईडी

document.getElementById("myForm:customerId") 

काम नहीं करता है, क्योंकि आईडी गलत है।

<composite:implementation> 
    <div id="element_customer"> 
     <h2 class="element_title">Customer</h2> 
     <h:form id="myForm"> 
      <h:inputText id="customerId" value="#{cc.attrs.customerId}"/> 
     </h:form> 
    </div> 
</composite:implementation> 

और HTML आउटपुट है:

<div id="element_customer"> 
    <h2 class="element_title">Customer</h2> 
    <form id="j_idt44:myForm" name="j_idt44:myForm" method="post" ... > 
     <input type="hidden" name="j_idt44:myForm" value="j_idt44:myForm" /> 
     <input id="j_idt44:myForm:customerId" ... name="j_idt44:myForm:customerId" /> 
    </form> 
</div> 

क्यों HTML आउटपुट में "j_idt44" प्रयोग किया जाता है मैं JSF समग्र घटक है?

उत्तर

13

समग्र घटकों NamingContainer घटकों <h:form>, <h:dataTable>, आदि जैसे यह आप आईडी परस्पर विरोधी के बिना एक ही दृश्य में उनमें से कई की अनुमति देता है कर रहे हैं।

आपको समग्र घटक को एक निश्चित आईडी भी देना होगा। जैसे

<my:composite id="someId" /> 

मैं भी <div id="#{cc.id}"> बजाय <div id="element_customer"> उपयोग करने के लिए सुझाव देना चाहेंगे। इसके बाद उपरोक्त उदाहरण के साथ someId बन जाएगा।


असंबंधित ठोस समस्या के लिए, यह पूरी तरह से एक समग्र घटक के सही उद्देश्य नहीं है। एक समग्र घटक <h:inputText>, आदि के समान होने का इरादा रखता है। आप एक टैग फ़ाइल या शायद एक फ़ाइल शामिल करना चाहते हैं। यह भी देखें When to use <ui:include>, tag files, composite components and/or custom components?

+0

धन्यवाद। सीसी का उपयोग करने के बारे में, मैंने इस प्रश्न को उचित उपयोग के बारे में पोस्ट किया है, लेकिन मुझे अभी भी यकीन नहीं है: http://stackoverflow.com/questions/10056008/proper-using-of-facelet-templates-composite-components – Ziletka

+0

ऐसा लगता है कि मैं समग्र घटकों के बजाय फेसलेट टैग का उपयोग करना चाहिए। – Ziletka

+1

आपका स्वागत है। हां मुझे ऐसा लगता है। – BalusC

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