2017-11-23 21 views
0

Primefaces 6.0では、アップロードする前にファイルを処理する必要があり、[参照]ボタンを押して別のメソッドを呼び出そうとします。私はremoteCommandを試してみますが、動作しません。Primefaces FileUploadコールでp:remoteCommandでメソッドを指定

<p:fileUpload allowTypes="/(\.|\/)(csv|zip)$/" 
     value="#{geoDataBean.file}" mode="simple" oncomplete="loadCountries();" 
     update="countriesDropdownPanel"> 
</p:fileUpload> 

<p:remoteCommand name="loadCountries" process="@this" 
     action="#{geoDataBean.loadCountries()}"/>  

<h:panelGroup id="countriesDropdownPanel"> 
    <p:selectCheckboxMenu 
      widgetVar="countryCode" 
      id="countryCodeId" 
      value="#{geoDataBean.selectedCountryCodes}" 
      label="#{geoDataBean.label}" 
      multiple="true" 
      panelStyle="width:198px"> 
     <p:ajax 
       event="toggleSelect" 
       update="countryCodeId" 
       listener="#{geoDataBean.update}" /> 
     <f:selectItems value="#{geoDataBean.countryCodeList}" /> 
    </p:selectCheckboxMenu> 
</h:panelGroup> 

<h:commandButton value="Import" action="#{geoDataBean.importGeoData}" /> 

インポートする前にファイルを処理する必要があります。インポートするファイルがどの国にあるかを確認する必要があるためです。

私はUploadedFileを使用します。あなたは、クライアント側でファイルにアクセスする必要がある場合は

+0

アップロード後に確認して保存しないかどうかを選択できますか? –

+0

ファイルを読み込む前にロードする必要があります。なぜなら、ドロップダウンから値を選択するときよりも、ドロップダウン(checkBoxMeny)をポップする必要があるからです。インポートを行い、ファイルから内容を保存します。 –

答えて

0

ではなく、onCompleteの

<p:fileUpload allowTypes="/(\.|\/)(csv|zip)$/" 
       value="#{geoDataBean.file}" mode="simple" onchange="loadCountries();" update="countriesDropdownPanel"> 
       </p:fileUpload> 

の、のonchangeで関数を呼び出してみ、あなたはまた、次のjQueryを使用することができます。これは、入力タイプのファイルをサポートするブラウザで動作します。

$("input[type=file]").on("change", function() { 
     // Do your stuff with this.files 
     loadCountries(); 
}); 
+0

は、メソッドをBeanから呼び出すと、私のファイルをブラウズに入れることができます。 –

+0

別のフォームでremoteCommandを試すことができますか? –

+0

jqueryコードは、https://www.primefaces.org/showcase/ui/file/upload/basic.xhtmlで動作します。 –

関連する問題