1

Springで管理されているJSFバッキングBeanがありますが、JSFの@ManagedPropertyを利用できるようにしたいと思います。以下は機能しません。

@Component
@Scope(Scopes.REQUEST)
public class MyRequestBean {

    @ManagedProperty(value="#{param.bcIndex}")
    private int bcIndex;

    public int getBcIndex() {
        return bcIndex;
    }

    public void setBcIndex(int bcIndex) {
        this.bcIndex = bcIndex;
    }
}

提案?

4

1 に答える 1

2

実際、それは非常に簡単です。私はあなたの注射をする3つの方法を知っています:

  1. Springのアノテーションを暗黙のElオブジェクト@Valueと一緒に使用します。#{param}

    @Value("#{param.bcIndex}")
    private int bcIndex;
    
  2. /リスナーで利用ExternalContext#getRequestParameterMapします:@PostConstructpreRenderView

    //@PostConstruct
    public void init() {
        bcIndex = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("bcIndex");
    }
    
  3. 以下を利用して、ビューにバインディングを作成します<f:viewParam>

    <f:metadata>
        <f:viewParam name="index" value="#{myRequestBean.bcIndex}" />
    </f:metadata>
    
于 2013-03-13T20:16:15.400 に答える