我有一个包含p:fileUpload的表单。上传的项目显示为id p:dataGrid,我可以删除它们。 当我上传一些文件并提交表格时,没有问题。但是当我上传文件并删除其中一些然后提交表单时,我得到了这个例外:
java.lang.ClassCastException: java.lang.String cannot be cast to javax.faces.model.SelectItem
at javax.faces.component.SelectItemsIterator.initializeItems(SelectItemsIterator.java:185)
at javax.faces.component.SelectItemsIterator.hasNext(SelectItemsIterator.java:131)
.
.
.
.
我的xhtml文件如下:
<h:panelGrid style="margin: 0 auto; width:65%; margin-top: 60px;">
<p:panel header="#{msg['create.job']}">
<h:form id="createJobForm">
<h:panelGrid columns="2">
<p:outputLabel value="#{msg['job.type']}" for="jobType"/>
<p:selectOneMenu value="#{createJobBean.jobWrapper.type}" placeholder="#{msg['job.type']}"
id="jobType">
<f:selectItem value="#{createJobBean.jobWrapper.type}"
itemLabel="#{createJobBean.type1.value}"
itemValue="#{createJobBean.type1}"/>
<f:selectItem value="#{createJobBean.jobWrapper.type}"
itemLabel="#{createJobBean.type2.value}"
itemValue="#{createJobBean.type2}"/>
</p:selectOneMenu>
<p:outputLabel value="#{msg['title']}" for="title"/>
<p:inputText value="#{createJobBean.jobWrapper.title}" id="title" style="width:717px;"/>
<p:outputLabel value="#{msg['content']}" for="content"/>
<p:inputTextarea id="content" value="#{createJobBean.jobWrapper.content}" cols="100"
style="width:717px;"/>
<p:outputLabel/>
<p:fileUpload fileUploadListener="#{createJobBean.fileUpload}" mode="advanced"
dragDropSupport="false"
style="width: 727px;" multiple="true" sizeLimit="500000" fileLimit="10"
allowTypes="/(\.|\/)(gif|jpe?g|png|docx|pdf)$/" update="attachPanel"/>
<p:outputLabel/>
<p:dataGrid id="attachPanel" style="margin-top: 20px;" columns="1"
value="#{createJobBean.attachments}" var="attach">
<p:commandButton icon="ui-icon-closethick"
style="width: 20px;height: 20px; margin-left: 10px; background:orange">
<p:ajax event="click" listener="#{createJobBean.removeAttachment(attach)}"
update=":createJobForm"/>
</p:commandButton>
<p:outputLabel value="#{attach}" style="color: blue;"/>
</p:dataGrid>
<p:outputLabel/>
<p:commandButton value="#{msg['save']}"
actionListener="#{createJobBean.addJob}"
update=" createJobForm" style="margin-top: 20px;" icon="ui-icon-disk"/>
</h:panelGrid>
</h:form>
</p:panel>
</h:panelGrid>
如果我从attachPanel中删除一些文件,然后单击“保存”按钮,我会得到该异常。
感谢您的帮助。