【问题标题】:f:param not working when used with trinidad 2f:param 与 trinidad 2 一起使用时不起作用
【发布时间】:2012-01-23 12:51:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • Baluc - 感谢您的所有回复..您知道我是否可以尝试其他任何方法来实现这一点我正在尝试跳过特定按钮单击的验证

标签: jsf-2 trinidad


【解决方案1】:

我使用的是 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();
}

【讨论】:

    【解决方案2】:

    您可以考虑使用&lt;tr:setActionListener/&gt;。在你的情况下,你可以使用类似的东西:

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

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

    在您的支持 bean 中,您需要添加一个名为 pressedButtonString 成员(带有 getter 和 setter)。现在您可以在actionSubmit中使用以下代码

    if ("submit".equals(pressedButton))
    {
      System.out.println("You pressed 'sumbit'");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 2020-06-23
      • 1970-01-01
      • 2012-10-15
      相关资源
      最近更新 更多