我正在使用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中,您需要添加一个名为pressedButton
的String
成员(带有getter和setter)。现在您可以在actionSubmit
中使用以下代码
if ("submit".equals(pressedButton))
{
System.out.println("You pressed 'sumbit'");
}