如何在bean验证方法中获取laucher按钮

时间:2016-11-11 19:21:03

标签: jsf oracle-adf

我需要根据点击的按钮进行一些验证,但是我找不到在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));

}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你的意思是你想知道点击了哪个按钮?行动不会告诉你这个。并且Action应仅用于导航。您应该使用ActionListener事件,并且返回给该方法的ActionListener Event对象将具有发起该事件的组件对象。我会为每个可以单击的按钮设置一个ActionListener事件,并且在被调用的方法中,只需设置被单击按钮的组件ID。