Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 警告面消息已排队,但可能未显示_Jsf_Jsf 2_Jboss7.x - Fatal编程技术网

Jsf 警告面消息已排队,但可能未显示

Jsf 警告面消息已排队,但可能未显示,jsf,jsf-2,jboss7.x,Jsf,Jsf 2,Jboss7.x,我有一个输入验证表,如下所示: <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;</

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

<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>   

请建议如何解决此问题。

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

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

<h:form id="insurance-form" rendered="#{(param['insSaved']=='editable')}">



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

您是否已将默认命名容器分隔符从
更改为
-
?顺便说一下,表单的
rendered
属性与
f:param
值不匹配,因此提交后整个表单根本不会被呈现。这不正是你具体问题的原因吗?但是很明显,不是整个表单都没有显示,而不仅仅是消息吗?@BalusC,不,我没有更改id的分隔符:保险表单:保险公司,如预期的那样。你有什么建议?@BalusC,所以我应该在输入上使用rendered属性吗?但是,到目前为止,提交的代码将完全隐藏整个
,包括所有子
组件,因为
的计算结果将为
false
。因此,消息确实从未显示,因此日志中的警告消息是完全可以预料的。这是你真正的代码还是一个粗心的过度简化?请再次阅读前面的注释。@BalusC,这是我正在处理的另一个人的代码,单击按钮后,它会隐藏表单并将输入值显示为标签,我想如果出现验证错误,它不应该隐藏表单。
<h:form id="insurance-form" rendered="#{(param['insSaved']=='editable')}">
<h:form id="insurance-form" rendered="#{(facesContext.postback and facesContext.validationFailed) or (param['insSaved'] == 'editable')}">