Jak działa atrybut „wiążący” w JSF? Kiedy i jak powinno być używane?

Istnieje wiele różnych materiałówvalue atrybut ibinding atrybut w JSF.

Interesuje mnie, jak oba podejścia różnią się od siebie. Dany:

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>

To całkiem proste, co się dzieje, gdy avalue atrybut jest określony. Getter uruchamia, aby zwrócićname wartość właściwościUser fasola. Wartość jest drukowana na wyjściu HTML.

Ale nie mogłem zrozumieć, jakbinding Prace. W jaki sposób wygenerowany HTML zachowuje powiązanie zlink własnośćUser fasola?

Poniżej znajduje się odpowiednia część wygenerowanego wyniku po ręcznym upiększeniu i komentowaniu (zwróć uwagę na idj_id_jsp_1847466274_1 został wygenerowany automatycznie i istnieją dwa ukryte widgety wejściowe). Używam JSF RI firmy Sun, wersja 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>

Gdzie jestbinding przechowywane tutaj?

questionAnswers(2)

yourAnswerToTheQuestion