<html>
  <head>
    <meta content="text/html; charset=iso-8859-2"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hali!<br>
    <br>
    Igen, én pont a 3. megoldást használom. Működik is mint írtam, csak
    az a bajom, hogy ha valahol használom ezt a komponenst, és ott
    hivatkozom egy java változóra, akkor a NetBeans hibát jelez, hogy
    ismeretlen attribútum.<br>
    <br>
    pl: &lt;laja:XXX value="egy" aktiv="true"/&gt;<br>
    Itt kiabál az NB, hogy 'aktiv' attribútum nincsen. Nyilván az a
    baja, hogy nincs definiálva az interface-ban. Az a bajom, hogy sehol
    nem találtam leírást, hogy mit kellene tennem, hogy ne jelezzen
    hibát. (Persze nem arra gondoltam, hogy kikapcsolom a hibajelzést.)
    <br>
    <br>
    Ehhez kapcsolódik, hogy ilyen esetben hogy tudom megadni, hogy egy
    java változó 'required', vagy hogy mi legyen abban a komponensben a
    default érték, illetve hogyan tudok leírást adni hozzá? Vagyis az
    interface-ben definiáltakat ilyenkor hogy tudom megadni?<br>
    <br>
    Üdv!<br>
    <br>
    Laja<br>
    <br>
    <div class="moz-cite-prefix">2015.08.10. 19:19 keltezéssel, Csaba
      Győrffy írta:<br>
    </div>
    <blockquote
cite="mid:CAJdoVuj7FFG9TZ73HNnzrydSHLzs8vUttv7VfVqCA0=x=52BjQ@mail.gmail.com"
      type="cite">
      <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="#{myBean.disabled}"<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 moz-do-not-send="true"
                    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 moz-do-not-send="true"
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="hu.laja.XXXComponent". 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 "This must be an instance of <code><a
                  moz-do-not-send="true"
href="http://docs.oracle.com/javaee/6/api/javax/faces/component/UIComponent.html">UIComponent</a></code>
              and implement at least the <code><a
                  moz-do-not-send="true"
href="http://docs.oracle.com/javaee/6/api/javax/faces/component/NamingContainer.html">NamingContainer</a></code>
              interface". 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 moz-do-not-send="true"
              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
            'aktiv'. 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="hu.laja.XXXComponent"&gt;<br>
                    &lt;composite:attribute name="value"
            required="true"/&gt;<br>
                    &lt;!-- Itt hogy kell definiálni az
            XXXComponent.java 'aktiv' változóját? --&gt;<br>
                &lt;/composite:interface&gt;<br>
            <br>
                &lt;composite:implementation&gt;<br>
                    ....<br>
                    &lt;p:selectOneMenu<br>
                        disabled="#{not cc.attrs.aktiv"&gt;<br>
                    ....<br>
                &lt;/composite:implementation&gt;<br>
            &lt;/html&gt;<br>
            <br>
            Használva:<br>
            ....<br>
            &lt;laja:XXX value="egy" aktiv="true"/&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 'aktiv'. 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 moz-do-not-send="true"
              href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
            <a moz-do-not-send="true"
              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>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Javalist mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a>
<a class="moz-txt-link-freetext" href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>