以下按预期工作,仅在发生点击事件时:
<a onclick="alert('test')"/>
但是在页面渲染时已经调用了它:
<a onclick="#{bean.someMethod()}" />
为什么在渲染时调用bean方法?
答案 0 :(得分:3)
onclick
需要javascript函数,而不是方法表达式。在呈现页面时,必须将#{bean.someMethod()}
解析为某个字符串(示例中为alert('test')
),这就是调用它的原因。 <a onClick="#{bean.someMethod()}" />
仅在someMethod()
返回有效javascript代码的字符串时才有意义。
不要混淆JSF action
属性,例如<h:commandButton action="#{bean.someMethod()}"
,单击按钮时会调用它。