Develop and Download Open Source Software

Recent Changes

2012-05-25
2012-04-24
2012-04-17
2012-04-16

Wiki Guide

Side Bar

@BlancoInject アノテーション: @ManagedBean のクラスを与えると

@ManagedBean とマークされたクラスに @BlancoInject を指定すると、内部的には FacesContext から ManagedBean として取得したうえでメソッド・パラメータに注入します。

入力ソースコード: AbstractSampleJsfManagedBean02.java

package sample;

import javax.faces.context.FacesContext;

import blanco.fw.BlancoInject;
import blanco.jsf.BlancoJsfManagedBean;

@BlancoJsfManagedBean
public abstract class AbstractSampleJsfManagedBean02 {
    public void a01(@BlancoInject final SampleJsfManagedBean bean,
            final String strArg0) {
    }

    public void a02(@BlancoInject final FacesContext ctx,
            @BlancoInject final SampleJsfManagedBean bean, final String strArg0) {
    }
}

出力ソースコード: SampleJsfManagedBean02.java

package sample;

import java.io.Serializable;

import javax.el.ELContext;
import javax.el.ELResolver;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 */
@ManagedBean
@ViewScoped
public class SampleJsfManagedBean02 extends AbstractSampleJsfManagedBean02 implements Serializable {
    /**
     * シリアルバージョン UID.
     */
    private static final long serialVersionUID = 1L;

    /**
     *
     * @param strArg0
     */
    public void a01(String strArg0) {
        final FacesContext autoValCtx = FacesContext.getCurrentInstance();
        final ELContext autoValElc = autoValCtx.getELContext();
        final ELResolver autoValRslvr = autoValCtx.getApplication().getELResolver();
        final SampleJsfManagedBean bean = (SampleJsfManagedBean) autoValRslvr.getValue(autoValElc, null, "sampleJsfManagedBean");
        super.a01(bean, strArg0);
    }

    /**
     *
     * @param strArg0
     */
    public void a02(String strArg0) {
        final FacesContext ctx = FacesContext.getCurrentInstance();
        final ELContext autoValElc = ctx.getELContext();
        final ELResolver autoValRslvr = ctx.getApplication().getELResolver();
        final SampleJsfManagedBean bean = (SampleJsfManagedBean) autoValRslvr.getValue(autoValElc, null, "sampleJsfManagedBean");
        super.a02(ctx, bean, strArg0);
    }
}

自動生成されるソースコードからわかるように、ELContext, ELResolver, FacesContext に依存するため、必要に応じて内部で自動生成します。

リンク


SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.