Java JSF两个必需输入字段的一条错误消息

Java JSF两个必需输入字段的一条错误消息,java,jsf,Java,Jsf,我试图为两个必填字段显示一个字段。 目前,如果两个字段都为空,则会出现两条错误消息。我想实现的是,如果两个字段或一个字段都为空,则只有一条消息 代码如下所示: <x:inputText value="#{bean.proxyUrl}" id="idProxyUrl" required="true" /> <x:outputText value=":" /> <x:inputText value="#{bean.proxyPor

我试图为两个必填字段显示一个字段。 目前,如果两个字段都为空,则会出现两条错误消息。我想实现的是,如果两个字段或一个字段都为空,则只有一条消息

代码如下所示:

<x:inputText
    value="#{bean.proxyUrl}"
    id="idProxyUrl"
    required="true"
    />
<x:outputText value=":" />
<x:inputText
    value="#{bean.proxyPort}"
    id="idProxyPort"
    required="true"
    />
<x:message for="idProxyUrl" errorClass="errorMessage" style="margin-left: 10px;" />
<x:message for="idProxyPort" errorClass="errorMessage" style="margin-left: 10px;" />


我能做些什么呢?不管一个或两个字段是否为空,我只能收到一条消息。

您可以为第二个组件指定一个特殊的验证器,用于检查第一个组件的SubmittedValue。我为一个PasswordValidator做了类似的事情,它检查了相应的确认密码字段

@FacesValidator("passwordValidator")
public class PasswordValidator implements Validator {    

    @Override
    public void validate(FacesContext context, UIComponent component,
            Object value) throws ValidatorException {


        String password = (String) value;


        UIInput confirmComponent = (UIInput) component.getAttributes().get("confirm");
        String confirm = (String) confirmComponent.getSubmittedValue();

        if (password == null || password.isEmpty() || confirm == null || confirm.isEmpty()) {
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Please confirm password", null);
            throw new ValidatorException(msg);
        }


        if (!password.equals(confirm)) {
            confirmComponent.setValid(false); 
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "The entered passwords do not match", null);
            throw new ValidatorException(msg);
        }


    }

您必须检查其他组件的提交值的原因是,在生命周期的流程验证阶段调用了验证器。在该阶段完成且每个提交的值都通过验证之前,不会应用任何提交的值。

前缀
x:
无法识别为任何已知的JSF组件库。我可以假设它是标准的JSFHTML组件集,URI
http://java.sun.com/jsf/html
?(如果是这样的话,为什么要更改世界上每个人都在使用的标准前缀?)这可能会对您有所帮助。。。
x:
指向
http://myfaces.apache.org/tomahawk
谢谢。有一些小的变化,因为场不必相等,这是有帮助的。我是JSF新手,需要学习很多!