Como o atributo 'binding' funciona no JSF? Quando e como deve ser usado?
Há muitos materiais por aí diferenciandovalue
atributo ebinding
atributo no JSF.
Estou interessado em como as duas abordagens diferem umas das outras. Dado:
public class User {
private String name;
private UICommand link;
// Getters and setters omitted.
}
<h:form>
<h:commandLink binding="#{user.link}" value="#{user.name}" />
</h:form>
É bem direto o que acontece quando umvalue
atributo é especificado. O getter corre para devolver oname
valor da propriedade doUser
feijão. O valor é impresso na saída HTML.
Mas eu não conseguia entender comobinding
trabalho. Como o HTML gerado mantém uma ligação com olink
propriedade doUser
feijão?
Abaixo está a parte relevante da saída gerada após o embelezamento manual e comentários (note que o idj_id_jsp_1847466274_1
foi gerado automaticamente e que existem dois widgets de entrada ocultos). Estou usando o JSF RI da Sun, versão 1.2.
<form action="/TestJSF/main.jsf" enctype="application/x-www-form-urlencoded"
id="j_id_jsp_1847466274_1" method="post" name="j_id_jsp_1847466274_1">
<input name="j_id_jsp_1847466274_1" type="hidden" value="j_id_jsp_1847466274_1">
<a href="#" onclick="...">Name</a>
<input autocomplete="off" id="javax.faces.ViewState" name="javax.faces.ViewState"
type="hidden" value="-908991273579182886:-7278326187282654551">
</form>
Onde estábinding
armazenado aqui?