之间有什么区别
<h:commandLink actionListener="#{serviceProviderBean.method}" value="Save" />
和
<h:commandLink actionListener="#{serviceProviderBean.method()}" value="Save" />
既调用上述代码中的相同方法或任何错误
答案 0 :(得分:0)
两者都很好。第二个用于传递像
这样的参数<h:commandLink actionListener="#{serviceProviderBean.save(someBean.someOption)}"
value="Save" />
答案 1 :(得分:0)
第二个在tomcat6下不起作用,它将与tomcat7 / jSF2一起使用
答案 2 :(得分:0)
我想你还必须使用方法和大括号,当你想使用一个返回布尔值的方法,但不要在bean中定义匹配的属性。 / p>
我今天有这种情况。
我的xhtml页面有一个<h:panelGroup ...>
,其rendered="#{bean.isLoggedIn}"
属性。 isLoggedIn
方法调用边界的方法,因此bean没有匹配的属性private boolean isLoggedIn
。
由于缺少属性我得到了一个例外。
将大括号添加到呈现的属性后,使其rendered="#{bean.isLoggedIn()}"
正常工作。
反正。这个方法现在被删除了,因为我的bean不应该做业务逻辑:D