在我的應用程序,我有以下形式爲什麼不調用Validator?
<h:form id="addItemForm" enctype="multipart/form-data">
<h:panelGrid columns="3" border="1">
<h:outputText value="Name: " />
<h:inputText label="name"
id="name" value="#{addItem.name}"
required="true" requiredMessage="Name is required." />
<h:message styleClass="errorMsg" for="name" />
<h:outputText value="Description: " />
<h:inputText label="description"
id="description" value="#{addItem.description}"
required="true" requiredMessage="Description is required." />
<h:message styleClass="errorMsg" for="description" />
<h:outputText style="font-weight: bold" value="Picture : " />
<t:inputFileUpload label="picture"
id="picture" value="#{addItem.picture}"
required="true" requiredMessage="Picture is required." />
<h:message styleClass="errorMsg" for="picture" />
</h:panelGrid>
<h:commandButton value="Confirm" actionListener="#{addItem.addItem}"/>
<h:outputText id="status" value="#{addItem.statusMsg}" />
</h:form>
如果我輸入的描述&保留原來的名稱空白,我點擊確認按鈕,我沒有看到任何錯誤訊息失蹤名。一個奇怪的是,我的網頁似乎被刷新,因爲我輸入的任何描述都沒有了。另外,即使我輸入了名稱和描述,actionListener中的addItem函數也不會被調用。
昨天,一切正常。如果有人能告訴我我在這裏可能做錯了,我會非常感激。
您必須爲命令按鈕使用ajax('
通過「刷新」我的意思是我點擊確認按鈕後,它似乎是一個全新的請求,根本不涉及到前一個請求。我的ManagedBean在ViewScope中,這意味着我輸入的描述應該在這裏,即使我沒有輸入名稱。 –
但是,如果驗證失敗,那麼'更新模型值'階段將被正確地轉義? –