我需要根据点击的按钮进行一些验证,但是我找不到在bean中的验证方法中获取该按钮的方法。如果我能得到按钮可能可以与内部定义的属性进行比较。所以这就是我得到的:
<af:button id="btnSearch">
<f:attribute name="action" value="search"/>
</af:button>
<af:inputText id="itSearch" validator="#{pageFlowScope.mbCustom.customValidation}">
</af:inputText>
在豆子里:
public void customValidation(FacesContext facesContext, UIComponent uIComponent, Object object) {
UIComponent button = //button that trigger the validation
String validationError = "";
if("search".equals(button.getAttributes().get("action")){
validationError ="Validation Button1";
}else if("other".equals(button.getAttributes().get("action")){
validationError ="Validation Button2";
}
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
validationError,
null));
}
任何帮助将不胜感激。
答案 0 :(得分:1)
你的意思是你想知道点击了哪个按钮?行动不会告诉你这个。并且Action应仅用于导航。您应该使用ActionListener事件,并且返回给该方法的ActionListener Event对象将具有发起该事件的组件对象。我会为每个可以单击的按钮设置一个ActionListener事件,并且在被调用的方法中,只需设置被单击按钮的组件ID。