我试图在包含文件中参数化<h:commandLink>
的action
属性:
<ui:include src="template-file.xhtml">
<ui:param name="actionToCall" value="actionSave" />
<ui:param name="actionLabel" value="actionLabel" />
</ui:include>
其中template-file.xhtml
包含:
<h:commandLink action="#{actionToCall}" value="#{actionLabel}" />
但是我得到了以下异常:
javax.el.ELException: /page.xhtml @17,45 action="#{actionToCall}":
Identity 'actionToCall' does not reference a MethodExpression instance,
returned type: java.lang.String
我想让它调用我放在actionToCall
变量中的弹簧web流转换动作。
在变量后面添加.toString
。这给了它一个"方法表达式"(它正在寻找),并允许它通过并执行所需的调用。标签最终看起来像:
<h:commandLink action="#{actionToCall.toString}" value="#{actionLabel}" />