@ManagedBean とマークされたクラスに @BlancoInject を指定すると、内部的には FacesContext から ManagedBean として取得したうえでメソッド・パラメータに注入します。
- 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) {
- }
- }
- 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 に依存するため、必要に応じて内部で自動生成します。