我正在关注此answer或this answer,其中介绍如何使actionListener
例如在facelets的情况下可重复使用:
<my:tag ... bean="#{myBean}" actionMethod="preFillData" />
...
<h:commandButton ... action="#{bean[actionMethod]}" />
很好。问题是,如果值 null ,我会感到困惑吗? 这样的东西,但我不确定它在jsf语法的情况下是否可行(参见下一个片段):
未经过测试
<h:commandButton ... action="#{(bean==null||actionMethod==null?myBeanB[myMethodB]:bean[actionMethod])}" />
相似的表达式导致Illegal Syntax for Set Operation
异常被抛出...所以我不确定语法:(*
所以我的问题是......如何在客户端分析属性值?
答案 0 :(得分:0)
我尝试将if...else
用作:
<c:if test="#{bean!=null and actionMethod!=null}">
<c:set var="variableAction" value="#{bean[actionMethod]}"/>
</c:if>
<c:if test="#{bean==null or actionMethod==null}">
<c:set var="variableAction" value="#{somedefaultbean.method}"/>
</c:if>
...
<h:commandButton ... actionListener="#{variableAction}" />
。p.s.解决方案工作正常,但我仍然在寻找一个较短的解决方案,所以请随时添加评论和有用的提示:))
干杯