¿Cómo funciona el atributo 'vinculante' en JSF? ¿Cuándo y cómo se debe utilizar?

Hay muchos materiales por ahí que se diferencianvalue atributo ybinding atributo en JSF.

Estoy interesado en cómo ambos enfoques difieren entre sí. 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>

Es bastante sencillo lo que sucede cuando unvalue Se especifica el atributo. El getter corre para devolver elname valor de propiedad de laUser frijol. El valor se imprime a la salida HTML.

Pero no pude entender cómobinding trabajos. ¿Cómo el HTML generado mantiene un enlace con ellink propiedad de laUser ¿frijol?

A continuación se muestra la parte relevante de la salida generada después del embellecimiento manual y los comentarios (tenga en cuenta que la identificaciónj_id_jsp_1847466274_1 fue generado automáticamente y que hay dos widgets de entrada ocultos). Estoy usando JSF RI de Sun, versión 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>

Dónde está elbinding almacenado aquí?

Respuestas a la pregunta(2)

Su respuesta a la pregunta