JSFページでのファイル・アップロードのサポートを提供するには、ADF FacesのinputFile
コンポーネント(oracle.adf.view.faces.component.UIXInput
)を使用します。このinputFile
コンポーネントは、af:form
またはh:form
コンポーネント内で使用できます。いずれの場合も、ファイルのアップロードをサポートするには、エンクロージング・フォームを設定する必要があります。
<af:form usesUpload="true"/>
<h:form enctype="multipart/form-data"/>
すべての入力コンポーネントと同様に、inputFile
コンポーネントはValueChangeEvent
を起動できます。ファイルのアップロードを処理するには、バッキングBeanに値の変更リスナー・メソッドを実装してイベントを処理するか、inputFile
コンポーネントの値をマネージドBeanに直接バインドできます。
ファイルがアップロード(および適切なValueChangeEvent
が配信)されると、inputFile
コンポーネントのvalue
属性がoracle.adf.view.faces.model.UploadedFile
のインスタンスに設定されます。コンポーネントのvalue
がoracle.adf.view.faces.model.UploadedFile
タイプのマネージドBeanプロパティにバインドされている場合は、ADF Facesによって、該当するモデルにUploadedFile
オブジェクトが設定されます。
値の変更リスナー・メソッド・バインディングの使用例:
<af:form usesUpload="true">
<af:inputFile label="Upload:"
valueChangeListener="#{MyBackingbean.fileUploaded}"/>
<af:commandButton text="Begin"/>
</af:form>
値の変更イベント・ハンドラ:
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import oracle.adf.view.faces.model.UploadedFile;
public class MyBackingbean
{
...
public void fileUploaded(ValueChangeEvent event)
{
UploadedFile file = (UploadedFile) event.getNewValue();
if (file != null)
{
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage message = new FacesMessage( "Successfully uploaded file " + file.getFilename() + " (" + file.getLength() + " bytes)");
context.addMessage(event.getComponent().getClientId(context), message);
// Here's where we could call file.getInputStream()
}
}
}
値バインディングの使用例:
<af:form usesUpload="true">
<af:inputFile label="Upload:"
value="#{MyManagedbean.file}"/>
<af:commandButton text="Begin"
action="#{MyManagedbean.doUpload}"/>
</af:form>
マネージドBeanメソッド:
import oracle.adf.view.faces.model.UploadedFile;
public class MyManagedbean
{
public UploadedFile getFile()
{
return _file;
}
public void setFile(UploadedFile file)
{
_file = file;
}
public String doUpload()
{
UploadedFile file = getFile();
// ... and process it in some way
}
private UploadedFile _file;
}
注意: バッキングBeanメソッドまたはマネージドBeanメソッドでは、UploadedFile
APIを使用してファイルのコンテンツを処理します。UploadedFile
メソッドの詳細は、ADF Facesの各Javadocを参照してください。
ADF Faces入力コンポーネントでのラベルおよびメッセージ表示のサポートについて
ADF Facesのファイル・アップロード・サーブレット・コンテキスト初期化パラメータの構成
inputおよびselectInputフィールドの作成
Copyright © 1997, 2007, Oracle. All rights reserved.