Java EE 6 の JSF では、Blanco2g は以下のように利用します。
- package sample.jsf;
- import java.sql.Connection;
- import java.sql.SQLException;
- import javax.faces.context.FacesContext;
- import blanco.fw.BlancoInject;
- import blanco.gettersetter.BlancoGetterSetter;
- import blanco.jsf.BlancoJsfManagedBean;
- /**
- * Java EE 6 の JSF の管理 Bean を自動生成するサンプル。
- */
- @BlancoJsfManagedBean
- public abstract class AbstractSampleJsfManagedBean {
- /**
- * 画面に公開するフィールド。
- */
- @BlancoGetterSetter
- protected String fieldText;
- /**
- * 管理 Bean の処理のエントリポイント。
- *
- * @param conn
- * このメソッド呼び出しをトランザクションとするデータベースコネクション。このメソッドの呼び出し元である XHTML 上からは、
- * このメソッド・パラメータを省略することができるようになります。
- * @param ctx
- * JSF コンテキスト・オブジェクト。このメソッドの呼び出し元である XHTML
- * 上からは、このメソッド・パラメータを省略することができるようになります。
- * @param otherManagedBean
- * この Bean から参照をおこないたい他の管理 Bean。このメソッドの呼び出し元である XHTML
- * 上からは、このメソッド・パラメータを省略することができるようになります。
- * @return メソッドの処理結果。
- * @throws SQLException
- */
- public String sayHello(@BlancoInject Connection conn, @BlancoInject final FacesContext ctx,
- @BlancoInject final OtherManagedBean otherManagedBean) throws SQLException {
- // ここで何かしらの処理を行います。
- conn.commit();
- return "こんにちは。";
- }
- }
- /*
- * このクラスは 'AbstractSampleJsfManagedBean' の具象クラスとして blanco Framework によって自動生成されました。
- */
- package sample.jsf;
- import java.io.Serializable;
- import java.sql.Connection;
- import java.sql.SQLException;
- import javax.el.ELContext;
- import javax.el.ELResolver;
- import javax.faces.bean.ManagedBean;
- import javax.faces.bean.ViewScoped;
- import javax.faces.context.FacesContext;
- /**
- * Java EE 6 の JSF の管理 Bean を自動生成するサンプル。
- */
- @ManagedBean
- @ViewScoped
- public class SampleJsfManagedBean extends AbstractSampleJsfManagedBean implements Serializable {
- /**
- * シリアルバージョン UID.
- */
- private static final long serialVersionUID = 1L;
- /**
- * 画面に公開するフィールド。
- *
- * @return 取得したい値。
- */
- public String getFieldText() {
- return fieldText;
- }
- /**
- * 画面に公開するフィールド。
- *
- * @param fieldText 設定したい値。
- */
- public void setFieldText(final String fieldText) {
- this.fieldText = fieldText;
- }
- /**
- * 管理 Bean の処理のエントリポイント。
- *
- * @return メソッドの処理結果。
- * @throws SQLException
- */
- public String sayHello() throws SQLException {
- java.lang.String autoValMethodResult;
- final FacesContext ctx = FacesContext.getCurrentInstance();
- final ELContext autoValElc = ctx.getELContext();
- final ELResolver autoValRslvr = ctx.getApplication().getELResolver();
- final OtherManagedBean otherManagedBean = (OtherManagedBean) autoValRslvr.getValue(autoValElc, null, "otherManagedBean");
- final Connection conn = blanco.db.BlancoDbConnectionUtil.getConnection();
- try {
- autoValMethodResult = super.sayHello(conn, ctx, otherManagedBean);
- } finally {
- blanco.db.BlancoDbConnectionUtil.releaseConnection(conn);
- }
- return autoValMethodResult;
- }
- }
このように、メソッドの呼び出しの前後で よくある定型的な処理をソースコード自動生成で実現することができます。