【发布时间】:2016-07-04 23:43:09
【问题描述】:
有很多材料可以区分 JSF 中的 value 属性和 binding 属性。
我对这两种方法有何不同很感兴趣。给定:
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>
指定value 属性时会发生什么非常简单。 getter 运行以返回 User bean 的 name 属性值。该值被打印到 HTML 输出。
但我不明白binding 的工作原理。生成的 HTML 如何维护与 User bean 的 link 属性的绑定?
以下是手动美化和注释后生成的输出的相关部分(注意,id j_id_jsp_1847466274_1 是自动生成的,并且有两个隐藏的输入小部件)。
我正在使用 Sun 的 JSF RI,版本 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>
binding 存储在哪里?
【问题讨论】:
标签: jsf jsf-2 binding components