2013-01-24 42 views
1

我不知道这是否是一种很好的做法,但我想根据用户上下文对来自相同commandButton的受管理bean调用不同的操作。原因是我从应用程序中的不同位置访问了一个页面,我希望我的单个命令是一个“后退”按钮,以便来自我的位置。 我已经实现了基于MyFaces Orchestra Flow自定义机制并在自定义NavigationHandler中重定向但我不知道是否有方法来参数化我的commandButton的action属性。从JSF 2中的相同命令调用不同的操作

任何建议,欢迎

+0

您是否使用JSF 2.x或1.2(原则,当外界数据表是不是不同的)?你在这个问题上混淆了两个标签,这很令人困惑。 – BalusC

+0

当前JSF 2.x;我想也许它存在两个版本的标准机制。 – mremond

+0

你可以做两个按钮,并设置**呈现**属性显示你需要或不需要的按钮。 –

回答

1

如果您的目标环境支持的Servlet 3.0/2.2 EL(Tomcat的7,Glassfish的3等),或已安装JBoss EL,那么你可以直接通过deisred参数到方法。所以,你可以有

public void submit(String argument) { 
    // ... 
} 

,或者基于一个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?

+0

非常感谢您的回复,但这些要求对我来说并不满意。不过我不确定这会起作用,因为我想要的实际上是:“#{bean1.method1}”或“#{bean2.method2}”,并利用与这些操作相关的导航规则。 – mremond

+1

只要让该方法委托给所需的方法并返回所需的结果?例如。 'if(“foo”.equals(argument)){return bean1.method1(); } else {return bean2.method2(); }'。 – BalusC

相关问题