[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