首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告面消息已入队,但可能尚未显示

警告面消息已入队,但可能尚未显示
EN

Stack Overflow用户
提问于 2012-10-30 03:25:04
回答 2查看 13.4K关注 0票数 5

我有一个带有输入验证的表单,如下所示:

代码语言:javascript
复制
<h:form id="insurance-form" rendered = "#{(param['insSaved']=='editable')}">
    <div id="insurance-info">
        <ul id="form-labels" style="text-align:left;">
            <li>Insurance Company&nbsp;</li>
            <li>Policy Number&nbsp;</li>
            <li>Coverage Amount&nbsp;</li>
            <li>Agent's Phone Number&nbsp;</li>
            <li>Agent's Email&nbsp;</li>
        </ul>

        <ul>
            <li>
                <h:inputText value="#{residenceBeans.insuranceCompany}" id="insurance-company" required="true" requiredMessage="company is required"/>
                <h:message for="insurance-company" styleClass="validation-error-msg insuarnce-validation"/>
            </li>

            <li>
                <h:inputText value="#{residenceBeans.policyNumber}" id="insurance-policy" required="true" requiredMessage="number is required"/>
                <h:message for="insurance-policy" styleClass="validation-error-msg insuarnce-validation"/>
            </li>

            <li>
                <h:inputText value="#{residenceBeans.coverageAmount}" id="insurance-amount" required="true" requiredMessage="coverage amount is required"/>
                <h:message for="insurance-amount" styleClass="validation-error-msg insuarnce-validation"/>
            </li>

            <li>
                <h:inputText value="#{residenceBeans.agentPhone}" id="insurance-phone" required="true" requiredMessage="phone is required"/>
                <h:message for="insurance-phone" styleClass="validation-error-msg  insuarnce-validation"/>
            </li>

            <li>
                <h:inputText value="#{residenceBeans.agentMail}" id="insurance-mail" required="true" requiredMessage="email is required">
                    <f:validator validatorId="emailValidator"/>
                </h:inputText>
                <h:message for="insurance-mail" styleClass="validation-error-msg insuarnce-validation"/>
            </li>
        </ul>                                       

        <h:commandLink value="SAVE POLICY INFORMATION" action="#{residenceBeans.saveInsuranceInfo}"  styleClass="insurance-link-container">
            <f:param name="insSaved" value="saved"/>
        </h:commandLink>
    </div>
</h:form>   

当将字段留空并提交表单时,我希望显示验证消息,但我得到的却是以下警告:

代码语言:javascript
复制
21:20:47,671 INFO  [javax.enterprise.resource.webcontainer.jsf.renderkit] (http--127.0.0.1-8080-3) WARNING: FacesMessage(s) have been enqueued, but may not have been displayed
sourceId=insurance-form:insurance-company[severity=(ERROR 2), summary=(company is required), detail=(company is required)]
sourceId=insurance-form:insurance-policy[severity=(ERROR 2), summary=(number is required), detail=(number is required)]
sourceId=insurance-form:insurance-amount[severity=(ERROR 2), summary=(coverage amount is required), detail=(coverage amount is required)]
sourceId=insurance-form:insurance-phone[severity=(ERROR 2), summary=(phone is required), detail=(phone is required)]
sourceId=insurance-form:insurance-mail[severity=(ERROR 2), summary=(email is required), detail=(email is required)]

请告诉我如何解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-30 16:48:16

消息不会显示,因为回发时根本不会呈现整个窗体。您指示仅当insSaved的请求参数的值为editable时才呈现表单。但是,在submit按钮中,它已被更改为saved,因此表单基本上不会在回发时呈现,因此包含的消息也不会呈现。考虑到代码的设置方式,这是完全预期的行为。

如果您希望在回发时出现验证错误时显示表单,则需要相应地更改其rendered属性。替换

代码语言:javascript
复制
<h:form id="insurance-form" rendered="#{(param['insSaved']=='editable')}">

通过

代码语言:javascript
复制
<h:form id="insurance-form" rendered="#{(facesContext.postback and facesContext.validationFailed) or (param['insSaved'] == 'editable')}">
票数 7
EN

Stack Overflow用户

发布于 2016-01-12 16:20:30

我遇到过这个问题,响应是删除primefaces库,然后再次添加到库列表中。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13128266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档