Come aggiungere tooltip a f: selectItems

Ad esempio il componente f:selectItems non supporta l’attributo title in alcune versioni di JSF.

Sarebbe ansible sostituire i componenti JSF con le loro controparti HTML semplici usando JSFC e fare qualcosa del genere?

     

invece di

     

Facendo esattamente così, sostituendo quest’ultimo da quanto sopra, sto ricevendo " Parent not an instance of ValueHolder: javax.faces.component.html.HtmlPanelGroup" Facelet TagExceptions

Sarebbe ansible sostituire i componenti JSF con le loro controparti HTML semplici usando JSFC e fare qualcosa del genere

No. In definitiva, un tale elemento HTML con attributo jsfc verrà trasformato in un vero componente JSF nell’albero del componente JSF e solo gli attributi supportati dal componente in questione verranno analizzati e impostati come attributo componente. L’attributo title non è tra gli attributi supportati del componente UISelectItem . Non sono sicuro di cosa intendi esattamente con “alcune versioni di JSF”. L’API JSF standard non la supporta già al primo posto. Il numero 529 delle specifiche JSF descrive questa lacuna ed è attualmente ancora aperto.

Se stai utilizzando JSF 2.2, utilizza gli attributi passthrough. Devi solo sostituire per , vedi anche Using f: selectItems var in passtrough attribute

 <... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">    

Sulla base della tua cronologia delle domande, sembra che tu non stia ancora utilizzando JSF 2.2. Se non è ansible eseguire l’aggiornamento, in pratica è necessario un renderizzatore personalizzato per . Durante la creazione del renderizzatore personalizzato, è ansible utilizzare la proprietà di description non utilizzata (!) UISelectItem class UISelectItem . Ho già risposto a una domanda simile indirizzata a : Primefaces tooltip per p: selectManyCheckbox .

  

Si noti che la creazione del renderizzatore personalizzato per è un , in particolare se si intende essere indipendenti dall’implementazione JSF. In teoria, un ResponseWriter personalizzato dovrebbe essere in grado di catturarlo, ma sfortunatamente, passa solo se stesso scrivendo , invece di UISelectItem in questione.