在Spring托管支持bean中使用JSF2 @ManagedProperty

时间:2013-03-13 19:31:48

标签: spring jsf-2

我有一个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;
    }
}

建议?

1 个答案:

答案 0 :(得分:2)

实际上这很简单。我知道注射的三种方法:

  1. 将Spring的@Value注释与隐式El #{param}对象一起使用:

    @Value("#{param.bcIndex}")
    private int bcIndex;
    
  2. ExternalContext#getRequestParameterMap / @PostConstruct听众中使用preRenderView

    //@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>