0

我正在使用 ICEfaces 3.2。我为特定ace:textAreaEntry字段定义了一个验证器方法。如果我的验证器中的验证代码失败,我将在上下文中添加一条面孔错误消息。我希望当这个错误消息被添加到上下文中时,我actionListener不会被执行。但我注意到的是,即使在我的验证器向上下文中添加了 faces 错误消息之后,也会actionListener执行。我认为因为验证失败,面孔不会执行actionlistener.

XHTML 文本区域入口代码:

<ace:textAreaEntry
  id="addrincountryofincorp"
  value="#{strformbean.addrInCountryOfIncorp}"
  required="true" styleClass="#{facesContext.validationFailed?'ui-state-error':''}"
  label="Address in Country of Incorporation" cols="50" rows="5"
  validator="#{strformbean.validateAddrLen}" />

验证器方法:

public void validateAddrLen(FacesContext fc,UIComponent uc, Object obj){
  int len = 0;
  Map compAttr = uc.getAttributes();
  log.debug("inside validateAddrLen...");
  log.debug("obj = "+obj);
  if(obj !=  null && ! obj.equals("")){
    len = obj.toString().length();
    if(len > 200){
      Utility.addValMesgToContext(compAttr.get("label").toString() + " cannot exceed 200 Characters");
      return;
    }
  }
}
4

1 回答 1

1

仅当您实际抛出一个javax.faces.validator.ValidatorException

尝试在里面抛出一个带有 FacesMessage 的异常:

FacesMessage msg = new FacesMessage("my validaton message");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(msg);
于 2013-01-20T08:09:57.157 回答