0

我正在使用 JSF 2 Trinidad 2(MyFaces) 并尝试在命令按钮中使用 f:param

<tr:commandButton text="Submit" action={backingBean.actionSubmit}>
<f:param name="isSubmit" value="Yes" />
</tr:commandButton>

基本上,我试图传递提交按钮的参数值,并且仅在单击提交按钮时才执行验证,将条件添加到输入元素所需的属性以检查提交按钮。

有没有办法识别 JSF2/Trinidad2 中的特定按钮单击,以便我可以在验证方法中检查该按钮单击。

4

2 回答 2

0

我正在使用 JSF 1.2,但我认为它在 JSF 2.0 中的工作方式相同。

对于您的 commandButton 使用 actionListener 而不是 action。

<tr:commandButton text="Submit" actionListener={backingBean.actionSubmit}> 

在您的 bean 中,您可以获得按钮的 id:

public void actionSubmit(ActionEvent event)
{
   event.getComponent().getId();
}
于 2012-01-24T06:39:39.530 回答
0

你可以考虑使用<tr:setActionListener/>. 在你的情况下,你可以使用类似的东西:

<tr:commandButton text="Submit" action="#{backingBean.actionSubmit}">
  <tr:setActionListener from="submit" to="#{backingBean.pressedButton}" />
</tr:commandButton>

基本上,您使用它将对象从from属性复制到to属性。请注意,您也可以在from属性中使用 EL ( #{someBean.someObject})。

在您的支持 bean 中,您需要添加一个String名为pressedButton(带有 getter 和 setter)的成员。现在您可以在您的actionSubmit

if ("submit".equals(pressedButton))
{
  System.out.println("You pressed 'sumbit'");
}
于 2012-08-28T08:13:58.440 回答