我不知道这是不是一个好习惯,但我想根据用户上下文对来自同一commandButton
的托管bean调用不同的操作。原因是我从应用程序中的不同位置访问一个页面,我希望我的单个命令是我来自的位置的一种“后退”按钮。
我已经实现了一个基于MyFaces Orchestra Flow概念的自定义机制,并在自定义NavigationHandler中进行了重定向,但我想知道是否有办法参数化我的commandButton的action
属性。
欢迎任何建议
答案 0 :(得分:1)
如果您的目标环境支持Servlet 3.0 / EL 2.2(Tomcat 7,Glassfish 3等),或者安装了JBoss EL,那么您只需将deisred参数直接传递给方法即可。所以你可以拥有
public void submit(String argument) {
// ...
}
和
<h:commandButton value="submit" action="#{bean.submit('some')}" />
或者,基于EL范围的变量:
<h:commandButton value="submit" action="#{bean.submit(some)}" />
还有其他方法。想想<f:param>
,<f:setPropertyActionListener>
,Application#evaluateExpressionGet()
等等。其中许多问题都是在<h:dataTable>
此处的背景下回答的:How can I pass selected row to commandLink inside dataTable?(原则并没有那么不同外部数据表)