Java 验证失败后,Primefaces会显示奇怪的属性
我的脸有一个奇怪的问题。我已经写了一份所有字段都是必填的注册表格。几乎每个字段都有一个自定义的国际化转换器或验证程序消息 有两种错误场景(使用和不使用AJAX):Java 验证失败后,Primefaces会显示奇怪的属性,java,validation,jsf,primefaces,Java,Validation,Jsf,Primefaces,我的脸有一个奇怪的问题。我已经写了一份所有字段都是必填的注册表格。几乎每个字段都有一个自定义的国际化转换器或验证程序消息 有两种错误场景(使用和不使用AJAX): 不使用AJAX:按下命令按钮后,所有验证程序消息都将正确显示。问题是,验证失败后,输入字段的字体颜色变为白色。选择时,您只能看到输入的文本 使用AJAX:按下命令按钮后,所有验证程序消息都会正确显示,并且字段的字体颜色不会改变。输入字段是可聚焦的。除了没有调用action listener方法之外,其他一切都运行得非常好 不会抛出
- 不使用AJAX:按下命令按钮后,所有验证程序消息都将正确显示。问题是,验证失败后,输入字段的字体颜色变为白色。选择时,您只能看到输入的文本
- 使用AJAX:按下命令按钮后,所有验证程序消息都会正确显示,并且字段的字体颜色不会改变。输入字段是可聚焦的。除了没有调用action listener方法之外,其他一切都运行得非常好
<h:form id="form">
<p:panelGrid columns="1" styleClass="ui-noborder">
<!-- MESSAGES -->
<p:messages id="msgs" closable="true"/>
<!-- E-MAIL -->
<h:outputLabel for="email" value="#{msgs.email_label} *"/>
<p:inputText id="email" name="email" required="true"
requiredMessage="#{msgs.email_format_message}" value="#{regCon.email}"
validatorMessage="#{msgs.email_format_message}">
<f:validateRegex
pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]"/>
</p:inputText>
<!-- USERNAME -->
<h:outputLabel for="username" value="#{msgs.username_label} *"/>
<p:inputText id="username" name="username" required="true"
requiredMessage="#{msgs.username_format_message}" value="#{regCon.username}"
validatorMessage="#{msgs.username_format_message}">
<f:validateRegex pattern="[a-zA-Z][a-zA-Z0-9]{3,15}"/>
</p:inputText>
<!-- PASSWORD -->
<h:outputLabel for="password" value="#{msgs.password_label} *"/>
<p:password id="password" name="password" required="true"
requiredMessage="#{msgs.password_format_message}" match="password_rep"
value="#{regCon.password}" validatorMessage="#{msgs.password_format_message}">
<f:validateRegex
pattern="((?=.*[a-z])(?=.*d)(?=.*[A-Z]).{8,40})"/>
</p:password>
<!-- REPEAT PASSWORD -->
<h:outputLabel for="password_rep" value="#{msgs.password_repeat_label} *"/>
<p:password id="password_rep" name="password_rep" required="true" value="#{regCon.passwordRepeat}"
requiredMessage="#{msgs.password_repeat_required_message}"/>
<!-- FIRSTNAME -->
<h:outputLabel for="firstname" value="#{msgs.firstname_label} *"/>
<p:inputText id="firstname" name="firstname" required="true"
requiredMessage="#{msgs.firstname_required_message}" value="#{regCon.firstname}">
</p:inputText>
<!-- LASTNAME -->
<h:outputLabel for="lastname" value="#{msgs.lastname_label} *"/>
<p:inputText id="lastname" name="lastname" required="true"
requiredMessage="#{msgs.lastname_required_message}" value="#{regCon.lastname}">
</p:inputText>
<!-- PHONE -->
<h:outputLabel for="phone" value="#{msgs.phonenumber_label} *"/>
<p:inputText id="phone" name="phone" required="true"
requiredMessage="#{msgs.phone_format_message}" value="#{regCon.phoneNumber}"
validatorMessage="#{msgs.phone_format_message}">
<f:validateRegex
pattern="\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$"/>
</p:inputText>
<!-- BIRTHDAY -->
<h:outputLabel for="birthday" value="#{msgs.birthday_label} *"/>
<p:inputMask id="birthday" name="birthday" required="true"
requiredMessage="#{msgs.birthday_format_message}"
value="#{regCon.dateOfBirth}" mask="#{msgs.birthday_mask}"
converterMessage="#{msgs.birthday_format_message}">
<f:convertDateTime pattern="#{msgs.birthday_pattern}"/>
</p:inputMask>
<p:commandButton value="#{msgs.registration_button}" styleClass="ui-priority-primary" ajax="false"
update=":form:msgs"
process=":form:email :form:username :form:password password_rep :form:firstname :form:lastname :form:phone :form:birthday"
actionListener="#{regCon.register()}"/>
<p:commandButton type="reset" value="#{msgs.reset_button}" update=":form:msgs"
process=":form:email :form:username :form:password :form:password_rep firstname :form:lastname :form:phone :form:birthday"/>
</p:panelGrid>
</h:form>
我解决了这个问题。看起来引导主题有点问题
我不知道到底是什么原因造成的,但经过几个小时无用的故障排除,我很高兴我已经解决了它…没错,但我想知道确切的问题是什么。