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