java.lang.ClassCastException:java.lang.String无法强制转换为表单子目录中的javax.faces.model.SelectItem

时间:2015-09-05 18:00:10

标签: jsf classcastexception selectonemenu

我有一个包含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中删除一些文件,然后单击“保存”按钮,我会得到该异常。

感谢您的帮助。

0 个答案:

没有答案