在我的应用程序,我有以下形式为什么不调用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中,这意味着我输入的描述应该在这里,即使我没有输入名称。 –
但是,如果验证失败,那么'更新模型值'阶段将被正确地转义? –