バッキングBeanは、JSPページのUIコンポーネントに対するロジックとプロパティが含まれているマネージドBeanです。「JSFページの作成」ダイアログの「ページの実装」セクション(展開可能)には、コンポーネントを自動的にバインドするオプションがあります。このオプションを選択すると、JDeveloperは、作成しているページに対してデフォルトのバッキングBeanを作成し(または選択したマネージドBeanを使用し)、ページに配置したすべてのコンポーネントを、そのBeanの対応するプロパティに自動的にバインドします。関連するアクセッサ・メソッドも作成されます。
ページを作成し、コンポーネントの自動バインドを選択した場合は、JDeveloperによって、次の処理が行われます。
view.backing
パッケージに配置されます。バッキングBeanのfaces-config.xml
ファイルにもマネージドBeanのエントリが作成されます。デフォルトでは、マネージドBean名は、backing_<page_name>
で、このBeanではリクエスト・スコープが使用されます。binding
属性の値としてEL式を使用して、コンポーネント・タグが該当するプロパティにバインドされます。JDeveloperでは、作成時に、フォーム・コンポーネントがJSPまたはJSPXページに自動的に配置されるため、フォーム・コンポーネントに対するプロパティとアクセッサ・メソッドが自動的に作成されます。 JDeveloperでは、バッキングBeanのプロパティに対する管理プロパティは作成されません。特定のプロパティ値を使用してBeanをインスタンス化する場合は、その構成をfaces-config.xml
ファイルで手動で実行する必要があります。
ページの自動コンポーネント・バインディングは、コマンドおよび入力コンポーネントの次の属性に対するメソッド・バインディング式の入力方法に影響を与えます。
action
actionListener
valueChangeListener
validator
JSFページに対して自動コンポーネント・バインディングが無効な場合は、メソッド・バインディング式を受け入れるコンポーネント属性にその式を入力するときに、既存のマネージドBeanを選択するか、新規のバッキングBeanを作成する必要があります。新規のバッキングBeanを作成した場合は、JDeveloperによって、そのBeanがマネージドBeanとしてアプリケーションのfaces-config.xml
に自動的に構成されます。
JSFページに対して自動コンポーネント・バインディングが有効な場合は、マネージドBeanを選択する必要はありません。メソッド・バインディング式を受け入れるコンポーネント属性にこの式を入力するときに、ページのバッキングBeanにある既存のメソッドから選択できます。または新規のメソッド名を入力すると、JDeveloperによって、ページのバッキングBeanに新規のスケルトン・メソッドが自動的に作成されます。作成された後、そのメソッドにロジックを追加する必要があります。
また、JSFページのバッキングBeanであるJavaファイルを編集する場合は、メソッド・バインディング・ツールバーがJavaソース・エディタに表示され、適切なメソッドをページ内の選択したコンポーネントに迅速かつ容易にバインドできます。
myfile.jsp
というファイル名のJSFページを作成したとします。JDeveloperによるデフォルトのマネージドBeanの自動作成を選択した場合は、JDeveloperによって、view.backing.Myfile.java
というバッキングBeanが作成され、ViewControllerプロジェクトの¥src
ディレクトリに配置されます。このバッキングBeanはアプリケーション・リソース・ファイル(faces-config.xml
)でマネージドBeanとして構成され、デフォルトのマネージドBean名はbacking_myfile
となります。
JSFページに対して自動コンポーネント・バインディングが有効な場合、ページに挿入するコンポーネントは、次のコード・サンプルに示すように、バッキングBeanのプロパティに(binding
属性を介して)自動的にバインドされます。
デフォルトのマネージドBeanを使用したJSFページ(myfile.jsp
)
...
<h:form binding="#{backing_myfile.form1}">
<h:inputText binding="#{backing_myfile.inputText1}"/>
<h:commandButton value="button0"
binding="#{backing_myfile.commandButton1}"
action="#{backing_myfile.commandButton_action}"/>
...
</h:form>
...
デフォルトのバッキングBeanのJavaファイル(Myfile.java
)
package view.backing;
import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlInputText;
public class Myfile
{
private HtmlForm form1;
public void setForm1(HtmlForm form1)
{
this.form1 = form1;
}
public HtmlForm getForm1()
{
return form1;
}
private HtmlInputText inputText1;
public void setInputText1(HtmlInputText inputText1)
{
this.inputText1 = inputText1;
}
public HtmlInputText getInputText1()
{
return inputText1;
}
private HtmlCommandButton commandButton1;
public void setCommandButton1(HtmlCommandButton commandButton1)
{
this.commandButton1 = commandButton1;
}
public HtmlCommandButton getCommandButton1()
{
return commandButton1;
}
public String commandButton_action()
{
// Add event code here...
return null;
}
}
アプリケーション・リソース・ファイル(faces-config.xml
)
...
<managed-bean>
<managed-bean-name>backing_myfile</managed-bean-name>
<managed-bean-class>view.backing.Myfile</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
...
注意: JSFページをビジュアル・エディタで編集するときは、自動バインド・オプションの有効化/無効化を切り替えたり、マネージドBeanの選択を変更できます。
JavaServer Facesの使用
HTMLページの操作
JSPページの操作
JSPタグ・ライブラリの操作
Webページおよび設計ツールの操作
Copyright © 1997, 2009, Oracle. All rights reserved.