(Java Server Faces 2.2) Primefaces 3.2 シンプル ファイル アップロード コントローラーを使用しています。アップロードする前にファイル情報にアクセスする必要があります。ManagedBean
ファイルが選択されたときに使用できるリスナーと、アップロードを開始する前にファイル情報を取得する方法
質問する
4724 次
1 に答える
2
タグはajax動作イベントをサポートしていないため、アップロードの開始時に起動する「onstart」属性を使用して、アップロードが開始する前にメソッドを呼び出すだけです。リモートコマンドを使用すると、次のようなことができます。
<p:remoteCommand name="beforeUpdate" partialSubmit="true" process="@this"
actionListener="#{myBean.doBefore}" value="" />
リモートコマンドの呼び出しをfileUploadに追加します
<p:fileUpload fileUploadListener="#{itemImportDialogController.uploadListener}"
mode="advanced" multiple="true" onstart="beforeUpdate()"
styleClass="importItems" update=":itemImportView:fileForm" style="margin: 10px 0"/>
そして、Beanに次のようなメソッドを追加します
public void doBefore() {
//DO SOME WORK
}
ファイル名については、ファイルをアップロードしているときにのみ取得できます
public void uploadListener(FileUploadEvent event) {
UploadedFile file = event.getFile();
//DO SOMETHING
}
これ以前は、コンポーネントとサーバー間でajaxの相互作用は不可能だったためです。申し訳ありませんが、不可能です。
ちなみに、jQueryを介してこれを管理して、次のようなイベントをキャッチすることができます
$('input[type=file]').change(function() {
//GET THE FILE AND SUBMIT IT TO THE SERVER WITH AJAX CALL
});
于 2012-12-12T09:22:51.010 に答える