我是JSF和托管bean的新手。我有一个托管bean,其中包含一些私有属性,包含公共setter和Getter方法。现在,当我将托管bean的属性添加到JSF表单时,我应该直接添加私有方法还是应该使用Getter方法调用属性?
例如:
<h:inputText value="#{BeanName.userName}"/>
<h:inputText value="#{BeanName.getUserName()}"/>
上面哪一个是正确的?
答案 0 :(得分:6)
假设您使用的是JBoss EL或EL 2.2+,两种方式都可以在初始显示中正常工作。但第一个实际上更正确,因为第二个只有get
值,但从不 set
值。如果要收集输入值,则应始终采用第一种方式。然后EL(表达语言)将在需要时自动找到getUserName()
和setUserName()
方法。
当您使用标准JSF EL实现时,第二种方法永远不会起作用,因为它不支持直接方法调用。
要了解有关JSF的更多信息,请从our JSF wiki page开始。
答案 1 :(得分:1)
如果在你的java类中有类似
的东西....
private String coolStuff;
public String getCoolStuff() {
return coolStuff;
}
....
然后在你的jsf页面中你可以这样访问它:
#{myBackingBean.coolStuff}
框架会自动查找名为getCoolStuff()
希望有所帮助
答案 2 :(得分:0)
数字1从上面是正确的,如果您在表单中使用带有JSF的EL,则它是您连接的私有字段。
您仍然需要托管bean调用的getter和setter来获取值,以便将它们保存在数据库中....等等