onclick中的Bean方法在渲染时触发

时间:2015-03-18 09:28:08

标签: html jsf onclick

以下按预期工作,仅在发生点击事件时:

<a onclick="alert('test')"/> 

但是在页面渲染时已经调用了它:

<a onclick="#{bean.someMethod()}" />

为什么在渲染时调用bean方法?

1 个答案:

答案 0 :(得分:3)

onclick需要javascript函数,而不是方法表达式。在呈现页面时,必须将#{bean.someMethod()}解析为某个字符串(示例中为alert('test')),这就是调用它的原因。 <a onClick="#{bean.someMethod()}" />仅在someMethod()返回有效javascript代码的字符串时才有意义。

不要混淆JSF action属性,例如<h:commandButton action="#{bean.someMethod()}",单击按钮时会调用它。