0

centerLayout、westLayoutを持つレイアウト構造を使用しています。中央のレイアウトユニットはprimefaces fileuploadを使用しています。web.xml に filter を追加し、fileupload に必要な lib を WEB/INF lib に追加しました。

そのリンクの手順を実装しました: PrimeFaces p:fileUpload の使用方法? リスナー メソッドが呼び出されないか、UploadedFile が null です。私の問題では機能しません。

layoutComplex.xhtml ページが読み込まれると、次のエラーが発生します:" /UI レイアウトの初期化エラー。中央のペイン要素が存在しません。中央のペインは必要な要素です。" 「ビュー [/layoutComplex.xhtml] のレンダリング エラー: java.lang.IllegalStateException: 応答がコミットされた後にセッションを作成できません」

アドレスバーに「http:....hostName/portal/dataImportingProjectCurrent.jsf」というURLを書いてもエラーにはなりません。

layoutComplex.xhtml コード部分:

<p:layoutUnit position="center" id="centerLayout">

                <h:form id="formCenter" enctype="multipart/form-data">
                    <p:panel id="optionPanel">
                        <p:panel id="panelWelcome"
                            rendered="#{menuSelection.selectedOption == menuSelection.WELCOME}">
                            <ui:include src="/welcomePage.xhtml" />
                        </p:panel>

                        <p:panel id="panelUserAdd"
                            rendered="#{menuSelection.selectedOption == menuSelection.USER_ADD}">
                            <ui:include src="/kullanici.xhtml" />
                        </p:panel>
                        <p:panel id="panelProjectAdd"
                            rendered="#{menuSelection.selectedOption == menuSelection.PROJECT_ADD}">
                            <ui:include src="/proje.xhtml" />
                        </p:panel>

                            <p:panel id="panelAuthorizationAdd" 
                            rendered="#{menuSelection.selectedOption == menuSelection.AUTHORIZATION_ADD}">
                            <ui:include src="/yetki.xhtml" />
                        </p:panel>

                        <p:panel id="panelRoleAdd"
                            rendered="#{menuSelection.selectedOption == menuSelection.ROL_ADD}">
                            <ui:include src="/rol.xhtml" />
                        </p:panel>

                        <p:panel id="panelDataDefining"
                            rendered="#{menuSelection.selectedOption == menuSelection.DATA_DEFINING}">
                            <ui:include src="/dataDefining.xhtml" />
                        </p:panel>

                        <p:panel id="panelDataEvaluation"
                            rendered="#{menuSelection.selectedOption == menuSelection.DATA_EVALUATION}">
                            <ui:include src="/dataEvaluation.xhtml" />
                        </p:panel>
                        **<p:panel id="panelDataImporting"
                            rendered="#{menuSelection.selectedOption == menuSelection.DATA_IMPORTING}">
                            <ui:include src="/dataImporting.xhtml" />
                        </p:panel>**
                        <p:panel id="panelDataReporting"
                            rendered="#{menuSelection.selectedOption == menuSelection.DATA_REPORTING}">
                            <ui:include src="/dataReporting.xhtml" />
                        </p:panel>
                        <p:panel id="panelAdmin"
                            rendered="#{menuSelection.selectedOption == menuSelection.ADMIN}">
                            <ui:include src="/admin.xhtml" />
                        </p:panel>
                        <p:panel id="panelCreateNewReportSchema"
                            rendered="#{menuSelection.selectedOption == menuSelection.DATA_REPORTING_NEW_SCHEMA}">
                            <ui:include src="/dataReportingNewSchema.xhtml" />
                        </p:panel>
                        <p:panel id="panelCreateReport"
                            rendered="#{menuSelection.selectedOption == menuSelection.DATA_REPORT_CREATING}">
                            <ui:include src="/dataReportCreating.xhtml" />
                        </p:panel>

                    </p:panel>
                </h:form>

            </p:layoutUnit>

primefaces fileUpload に属するページ コードは、dataImportingProjectCurrent.xhtml です。

<h:body>
<h:form id="formDataImportProjectCurrent" enctype="multipart/form-data" >
    <h1>
        Project current fdasdata importinfdsa  is under construction. Coming soon...
    </h1>

    <p:fileUpload label="Seçiniz"
            fileUploadListener="#{dataImportingBean.handleFileUpload}"
            mode="advanced" auto="true" sizeLimit="1000000"
            allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />

</h:form>

私のビーンは DataImportingBean.java です:

@ManagedBean @SessionScoped public class DataImportingBean extends GenericBean implements Serializable{

private static final long serialVersionUID = 730586496885706439L;

private UploadedFile file;

@Inject
DataImportingService DataImportingService;

@Override
public GenericService<Data, Long> getService() {
    return DataImportingService;
}


@Override
public void newObject() {
    setObject(new Data());
}


public void handleFileUpload(FileUploadEvent event) {  
    FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");  
    FacesContext.getCurrentInstance().addMessage(null, msg);  
    System.err.println("event.getFile().getFileName(): " + event.getFile().getFileName());
}

}

回答ありがとうございました。

4

1 に答える 1