Wie funktioniert das Attribut 'binding' in JSF? Wann und wie soll es angewendet werden?

Es gibt viele unterschiedliche Materialienvalue Attribut undbinding Attribut in JSF.

Mich interessiert, wie sich beide Ansätze voneinander unterscheiden. Gegeben:

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 ist ziemlich einfach, was passiert, wenn avalue Attribut ist angegeben. Der Getter rennt, um das zurückzugebenname Vermögenswert derUser Bohne. Der Wert wird in der HTML-Ausgabe ausgegeben.

Aber ich konnte nicht verstehen wiebinding funktioniert. Wie unterhält das generierte HTML eine Bindung mit demlink Eigentum derUser Bohne?

Nachstehend finden Sie den relevanten Teil der generierten Ausgabe nach manueller Verschönerung und Kommentierung (beachten Sie, dass die IDj_id_jsp_1847466274_1 wurde automatisch generiert und es gibt zwei versteckte Eingabe-Widgets). Ich verwende Suns JSF RI, Version 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>

Wo ist der, die, dasbinding hier gespeichert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage