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?