[Javalist] jsf java attributum

Freemail laja at freemail.hu
2015. Aug. 11., K, 15:13:07 CEST


Hali!

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.

pl: <laja:XXX value="egy" aktiv="true"/>
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.)

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?

Üdv!

Laja

2015.08.10. 19:19 keltezéssel, Csaba Győrffy írta:
> Hello,
>
> alapvetően három lehetőséget látok. A kódban ezek némileg keverednek:)
>
> 1. A komponensben közvetlenül hivatkozod egy managed beaned valamely 
> mezőjét a szokott módon: disabled="#{myBean.disabled}"
>
> 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.
> http://www.mkyong.com/jsf2/composite-components-in-jsf-2-0/
>
> 3. A komponenst hozzákötöd egy backing componenthez. Nem backing bean 
> (azaz managed bean), hanem backing component.
> http://balusc.blogspot.hu/2013/01/composite-component-with-multiple-input.html
>
> 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 |UIComponent 
> <http://docs.oracle.com/javaee/6/api/javax/faces/component/UIComponent.html>| 
> and implement at least the |NamingContainer 
> <http://docs.oracle.com/javaee/6/api/javax/faces/component/NamingContainer.html>| 
> 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.
>
> Üdv
> Csaba
>
> 2015. augusztus 10. 16:21 Freemail írta, <laja at freemail.hu 
> <mailto:laja at freemail.hu>>:
>
>     Hali!
>
>     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?
>
>     XXX.xhtml:
>     <html ....>
>         <composite:interface componentType="hu.laja.XXXComponent">
>             <composite:attribute name="value" required="true"/>
>             <!-- Itt hogy kell definiálni az XXXComponent.java 'aktiv'
>     változóját? -->
>         </composite:interface>
>
>         <composite:implementation>
>             ....
>             <p:selectOneMenu
>                 disabled="#{not cc.attrs.aktiv">
>             ....
>         </composite:implementation>
>     </html>
>
>     Használva:
>     ....
>     <laja:XXX value="egy" aktiv="true"/>
>
>
>     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...
>
>     A kérdésem, hogyan kell definiálni a java-ban lévő változókat mint
>     attribútumokat a komponensben?
>     (Ha simán úgy definiálom  mint a többit, akkor mindenféle hibák
>     jönnek, meg nem renderelődik rendesen a komponens :( )
>
>     Köszi!
>
>     Laja
>
>     _______________________________________________
>     Javalist mailing list
>     Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>     http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist

--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20150811/550e5fd2/attachment.html>


További információk a(z) Javalist levelezőlistáról