当正文中存在required =“true”时,查看显示错误的行为

时间:2013-09-04 21:13:48

标签: jsf primefaces

我有一个运作良好的观点。但是,当我在视图的主体中添加一个required =“true”时,视图开始无法正确读取辅助bean。以下是比较:

任何人都知道为什么?

Without required="true" Wit required="true"

编辑:代码片段补充

以下是我的代码中出现问题的片段。如果我将 required =“true”添加到任何p:inputText(不仅是属于此对话框的p:inputText,而是html体内的任何p:inputText),它将停止显示来自辅助bean的信息,删除它,一切正常。

<p:dialog header="Customer Editor" widgetVar="customerEditDialog"
                resizable="false" id="customerEditDlg" showEffect="fade"
                hideEffect="fade" modal="true">

                <h:panelGrid id="editGrid" columns="2" cellpadding="4"
                    style="margin:0 auto;">

                    <h:outputLabel for="customerNameEdit" value="Name: " />
                    <p:inputText id="customerNameEdit" maxlength="30"
                        value="#{customerController.customerAdd.name}" />
                    <h:outputLabel for="customerPhoneNumberEdit" value="Phone Number " />
                    <p:inputText id="customerPhoneNumberEdit" maxlength="15"
                        onkeypress="if(event.which  &lt; 48 || event.which  &gt; 57) return false;"
                        value="#{customerController.customerAdd.phoneNumber}" />
                    <h:outputLabel for="customerEmailEdit" value="Email: " />
                    <p:inputText id="customerEmailEdit" maxlength="49"
                        value="#{customerController.customerAdd.email}" />
                    <h:outputLabel for="customerAddressEdit" value="Address: " />
                    <p:inputText id="customerAddressEdit" maxlength="190"
                        value="#{customerController.customerAdd.address}" />
                    <f:facet name="footer">
                        <div style="text-align: right">
                            <p:commandButton id="editCustomerButton"
                                update=":form:customerList, :form:messages"
                                oncomplete="customerEditDialog.hide()" value="Save"
                                actionListener="#{customerController.editCustomer()}">
                            </p:commandButton>

                            <p:commandButton id="cancelEditCustomerButton" update=":form"
                                onclick="customerEditDialog.hide()" value="Cancel">
                            </p:commandButton>
                        </div>
                    </f:facet>
                </h:panelGrid>
            </p:dialog>

1 个答案:

答案 0 :(得分:1)

查看jsf required=true destroys setPropertyActionListener?是否对您有所帮助。

问题很可能是因为其他地方的验证错误或者您正在嵌套<h:form>元素而不会调用bean中的setter。