2011-11-12 16 views
6

creo un componente composito come questo:Perché l'attributo "rendering" del componente composito genera un'eccezione IllegalArgument?

<cc:interface>   
    <cc:attribute name="value" 
        required="true" /> 
    <cc:attribute name="rendered" 
        displayName="True to render" 
        default="true" /> 
</cc:interface> 

Quando invoco questa componente, ottengo un'IllegalArgumentException. Posso cambiare il nome reso in qualcos'altro (come doIt) e poi funziona.

L'attributo reso riservato è in qualche modo riservato a? Voglio che il mio componente composito assomigli a componenti JSF "regolari".

Questo è con Mojarra.

+0

In futuro, non è necessario contrassegnare esplicitamente '[mojarra]' se il problema non è specifico di Mojarra. Avresti esattamente lo stesso problema quando hai provato ad esempio MyFaces. Basta menzionare JSF impl/version nella domanda è sufficiente. – BalusC

+0

Ho messo lì Mojarra perché pensavo che potesse essere un bug di Mojarra. Ma punto preso. – AlanObject

risposta

13

componenti compositi estendono UINamingContainer che a sua volta si estendono UIComponentBase che a sua volta già definies gli attributi id e rendered. Non è necessario specificarli da soli. Basta rimuovere lo <cc:attribute name="rendered">. Se si specifica l'attributo rendered sul tag del componente composito, verrà interpretato e applicato al componente composito stesso.

Se si tenta di rendere specifici figli del composito, quindi meglio inventare un nome di attributo diverso. Ad esempio, renderSomeChild.

+0

Quando si modifica il componente nell'editor NetBeans 7.1, considera l'attributo ** rendered ** come un errore quando non è definito da un elemento ** cc: attribute **. È un bug di Netbeans? – AlanObject

+0

Scusa, non ho usato Netbeans per più di 5 minuti. Funziona perfettamente in questo modo in Eclipse. – BalusC

+2

Per quanto riguarda la risposta, ha lo stesso problema in Eclipse: l'attributo "rendering" del mio componente di composizione è sottolineato e contrassegnato come elemento sconosciuto. JSF 2.1.24, Eclipse 3.7.2 con strumenti JSOS JBOSS. – alfonx

Problemi correlati