Sì, c'è un nuovo fantastico modo JSF 2.2 per ottenere questo!
è possibile rendere il passthrough un elemento fieldset
JSF 2.2 e passarlo una mappa di attributi come questo:
<fieldset jsf:id="fieldset">
<f:passThroughAttributes value="#{customerBean.params}"/>
</fieldset>
Il prefisso jsf
è per il nuovo JSF 2.2 namespace http://xmlns.jcp.org/jsf
. Se un tag HTML ha un attributo in questo spazio dei nomi, JSF lo convertirà in un componente JSF reale nell'albero dei componenti. Pertanto è possibile utilizzare f:passThroughAttributes
per aggiungere attributi provenienti da una mappa in un bean gestito.
Il getter per la proprietà params potrebbe apparire come segue (è possibile aggiungere attributi in base a qualsiasi condizione nel chicco):
public Map<String, String> getParams() {
HashMap<String, String> params = new HashMap<String, String>();
if (disabled) {
params.put("disabled", "disabled");
}
return params;
}
Per ulteriori informazioni sugli attributi passthrough e gli elementi, uno sguardo al mio blogpost circa HTML5 friendly markup with JSF 2.2.