我不知道这是否是一个好习惯,但是我想根据用户上下文在同一commandButton
上对托管bean调用不同的操作。原因是我从应用程序中的不同位置访问页面,我希望我的单个命令是指向我来自的位置的“返回”按钮。
我已经基于MyFaces Orchestra Flow的想法实现了一种自定义机制,并带有一个自定义NavigationHandler中的重定向功能,但是我想知道是否有一种方法可以对commandButton的action
属性进行参数化。
任何建议欢迎
最佳答案
如果您的目标环境支持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?(在外部数据表中时原理没有什么不同)关于java - 在JSF 2中从同一命令调用不同的 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14506471/