<div dir="ltr"><div><div><div><div><div><div><div><div>Hello,<br><br></div>alapvetően három lehetőséget látok. A kódban ezek némileg keverednek:)<br><br></div>1. A komponensben közvetlenül hivatkozod egy managed beaned valamely mezőjét a szokott módon: disabled=&quot;#{myBean.disabled}&quot;<br><br></div>2. A komponensben definiálsz egy aktiv attribútumot. Az interfészen belül, ugyanúgy, mint ahogy a value-t definiáltad, majd a felhasználás helyén is megadod (ha már required), ahogy tetted is. Így nem kötöd hozzá egy konkrét beanhez a komponenst, hanem a komponens felhasználója dönthet a felhasználás helyén arról, mit ad át.<br><a href="http://www.mkyong.com/jsf2/composite-components-in-jsf-2-0/">http://www.mkyong.com/jsf2/composite-components-in-jsf-2-0/</a><br><br></div>3. A komponenst hozzákötöd egy backing componenthez. Nem backing bean (azaz managed bean), hanem backing component.<br><a href="http://balusc.blogspot.hu/2013/01/composite-component-with-multiple-input.html">http://balusc.blogspot.hu/2013/01/composite-component-with-multiple-input.html</a><br><br></div>Azért írtam, hogy keverednek a lehetőségek, mert az interfésznél van egy ilyened: componentType=&quot;hu.laja.XXXComponent&quot;. Ez pontosan a harmadik megoldás egyik kulcspontja. Az XXXComponent ilyenkor egy backing component kell legyen, ami többek között azt jelenti, hogy &quot;This must be an instance of <code><a href="http://docs.oracle.com/javaee/6/api/javax/faces/component/UIComponent.html">UIComponent</a></code> and implement at least the <code><a href="http://docs.oracle.com/javaee/6/api/javax/faces/component/NamingContainer.html">NamingContainer</a></code> interface&quot;. Ilyenkor a backing component mezőit nem cc.attrs.mezőnév, hanem cc.mezőnév formában lehet elérni, és ezek a mezők nem Stringek pl., hanem UI komponens típusúak, pl. UIInput. Az 1. és 2. megoldásoknál nincs szükség a componentType megadására.<br></div><br></div>Üdv<br></div>Csaba<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015. augusztus 10. 16:21 Freemail írta, <span dir="ltr">&lt;<a href="mailto:laja@freemail.hu" target="_blank">laja@freemail.hu</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hali!<br>
<br>
JSF-ben csinálok egy saját compisite components-et, legyen a neve monjuk XXX. Van hozzá egy java osztály is, ami legyen XXXComponent.java. Ebben vagy egy változó, mondjuk legyen &#39;aktiv&#39;. Van hozzá getter meg setter ahogy kell. A kérdésem az, hogy hogyan tudom a kompons leíró xhtml-ben definiálni mint attribútum ezt a változót?<br>
<br>
XXX.xhtml:<br>
&lt;html ....&gt;<br>
    &lt;composite:interface componentType=&quot;hu.laja.XXXComponent&quot;&gt;<br>
        &lt;composite:attribute name=&quot;value&quot; required=&quot;true&quot;/&gt;<br>
        &lt;!-- Itt hogy kell definiálni az XXXComponent.java &#39;aktiv&#39; változóját? --&gt;<br>
    &lt;/composite:interface&gt;<br>
<br>
    &lt;composite:implementation&gt;<br>
        ....<br>
        &lt;p:selectOneMenu<br>
            disabled=&quot;#{not cc.attrs.aktiv&quot;&gt;<br>
        ....<br>
    &lt;/composite:implementation&gt;<br>
&lt;/html&gt;<br>
<br>
Használva:<br>
....<br>
&lt;laja:XXX value=&quot;egy&quot; aktiv=&quot;true&quot;/&gt;<br>
<br>
<br>
Ez így működik rendesen, de a NetBeans meg más kód ellenőrzők hibásnak titulálják a kódot, mert hogy nincs olyan attribútuma hogy &#39;aktiv&#39;. Persze hogy nem látja, mert nincs definiálva...<br>
<br>
A kérdésem, hogyan kell definiálni a java-ban lévő változókat mint attribútumokat a komponensben?<br>
(Ha simán úgy definiálom  mint a többit, akkor mindenféle hibák jönnek, meg nem renderelődik rendesen a komponens :( )<br>
<br>
Köszi!<br>
<br>
Laja<br>
<br>
_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" rel="noreferrer" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
</blockquote></div><br></div>