在 JSF 2 中从同一命令调用不同的操作



我不知道这是否是一种好的做法,但我想根据用户上下文对来自同一commandButton的托管 bean 调用不同的操作。原因是我从应用程序中的不同位置访问页面,我希望我的单个命令是我来自的位置的"后退"按钮。我已经基于MyFaces Orchestra Flow的想法实现了自定义机制,并在自定义导航处理程序中重定向,但我想知道是否有办法参数化我的命令按钮的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>的上下文中得到了回答:如何将选定的行传递给数据表中的命令链接?(在数据表之外时原理没有太大区别)

相关内容

  • 没有找到相关文章

最新更新