मैं निम्नलिखित समग्र घटक है:सशर्त एक समग्र घटक में तत्व की विशेषता प्रस्तुत करना
<?xml version="1.0" encoding="UTF-8"?>
<ui:component xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:attribute required="true" name="field" />
<composite:attribute required="true" name="value" />
<composite:attribute required="false" name="size"/>
</composite:interface>
<composite:implementation>
...
<div class="wrapper">
<h:inputText value="#{cc.attrs.value}"
id="#{field.id}"
rendered="#{field.rendered}"
size="#{cc.attrs.size}">
</h:inputText>
<h:messages for="#{field.id}" styleClass="errorMessage"/>
</div>
...
</composite:implementation>
</ui:component>
समस्या यह है कि जब मैं अपने size
विशेषता सेटिंग के बिना इस घटक का उपयोग कर रहा है, यह अभी size=0
के रूप में प्रदान की गई हो जाता है एचटीएमएल इनपुट तत्व।
जो मैं चाहता हूं वह नेस्टेड h:inputText
की विशेषता केवल तभी प्रस्तुत करना है जब उसके पास मान्य मान हो (उदाहरण के लिए खाली नहीं)। वैकल्पिक रूप से, मैं नेस्टेड तत्व के सभी विशेषताओं का खुलासा करना चाहता हूं यदि वे स्पष्ट रूप से ओवरराइड नहीं हैं।
यह कैसे संभव होगा?
कृपया टैगिंग के साथ सावधान रहना, एक समग्र घटक एक कस्टम घटक नहीं है। यह भी देखें http://stackoverflow.com/questions/5704620/what-is-the-difference-between-custom-components-and-composite-components – BalusC
सुधार के लिए धन्यवाद। मुझे इसके बारे में पता है लेकिन मैं थोड़ा लापरवाही था, शायद मुझे कुछ मिनट तोड़ने की ज़रूरत है: एस –