f: param与trinidad2一起使用时不起作用



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

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

基本上,我试图传递submit按钮的param值,并且只有在单击submit按钮时才执行验证,将条件添加到输入元素的必需属性中,以检查submit按钮。

是否有一种方法可以识别JSF2/Trinidad2中的特定按钮点击,以便我可以在验证方法中检查该按钮点击。

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

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新