PrimeFaces中的多行验证

时间:2015-07-23 10:47:09

标签: validation jsf jsf-2 primefaces

我在dataTable中验证输入字段时遇到问题,您可以添加/删除行。我想验证整个表中唯一的关键参数。我想是以不正确的方式得到它。 这是一个简化版本:

在xhtml中:

@FacesValidator("duplicateInputValidator")
public class DuplicateInputValidator implements Validator {

  private final List<String> values = new ArrayList<>();  

  @Override
  public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {       
    if (values.contains(value.toString())) {
      throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "error validation", ""));
    }
    values.add(value.toString());
  }
}

我的验证员:

function getHostnameFromHostFile(ip)
    local hostName = "unknown";
    local hostFile = io.open("/etc/hosts");

    for line in hostFile:lines() do
        if line and string.find(line, ip) then
            hostName = line:match("[a-zA-Z][a-zA-Z0-9]+");
        end
    end
    return hostName;
end

在这个简单的例子中,它可以工作,但如果验证也与不同的列相关(在本例中:value),它将无法工作。 有没有更好的方法来做到这一点?我在考虑从数据表中检索所有数据并验证它们的可能性。 &#39; findComponent&#39;如果我有可重复的行,则无法正常工作。

0 个答案:

没有答案