我有一个JSF页面。我的CommandButton操作方法值取决于bean变量值。示例:Bean headerBean具有值为"someBean.doAction1()"的可变actionValue
当我使用时,它说headerBean.actionValue不是一个正确的方法。
如何将操作值获取为"someBean.doAction1"而不是headerBean.actionValue.
谢谢,
您可以使用大括号表示法。
<h:commandButton value="submit" action="#{someBean[headerBean.actionValue]}" />
当#{headerBean.actionValue}
返回字符串(例如doAction1
)时,这将有效地调用#{someBean.doAction1}
。
如果要调用的bean名称当前实际在actionvalue
中(headerBean.actionValue
返回someBean.doAction1
),则需要将其拆分为一个返回bean名称的字段和一个返回方法名称的字段,然后使用
<h:commandButton value="submit" action="#{requestScope[headerBean.beanName][headerBean.actionValue]}" />
如果headerBean.beanName
返回"someBean",而headerBean.actionValue
返回doAction1
,则以上将调用#{somebean.doAction1}
。