我有一个JSF表单,其中包含一个Primefaces fileupload组件。
fileupload组件的必需属性不起作用;当我点击没有文件附件的表单发送按钮时,表单将被发送并且不会显示任何错误消息。
这是我用于测试的简化表单代码:
<h:form id="NewRegistryForm">
<fieldset>
<p:outputLabel for="address" value="Address" />
<h:inputText
name="address"
value="#{registryBean.address}"
required="true"
requiredMessage="Address field is required" />
</fieldset>
<fieldset>
<p>File attachments:</p>
<p:fileUpload
fileUploadListener="#{registryBean.handleFileUpload}"
mode="advanced"
label="Choose file"
multiple="true"
update="registryFileList"
invalidFileMessage="Invalid file type"
sizeLimit="512000"
fileLimit="15"
allowTypes="/(\.|\/)(jpg|png|gif|pdf|odt|doc|docx)$/i"
onstart="setSubmitButtonEnabled(false)"
oncomplete="setSubmitButtonEnabled(true)"
onerror="setSubmitButtonEnabled(true)"
auto="true"
required="true"
requiredMessage="A file attachment is required." />
</fieldset>
<p:dataList id="registryFileList" value="#{registryBean.uploadedFiles}"
var="file" emptyMessage="" >#{file.file.fileName}, #{file.file.size}</p:dataList>
<p:commandButton
type="submit"
action="#{registryBean.sendRequest}"
value="Send form"
validateClient="true" />
</h:form>
当未填写字段时,必需的文本输入字段显示错误消息,但是在没有附加文件时,fileupload组件不会生成任何消息。我做错了什么?