我有一个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;
}
}
建议?
答案 0 :(得分:2)
实际上这很简单。我知道注射的三种方法:
将Spring的@Value
注释与隐式El #{param}
对象一起使用:
@Value("#{param.bcIndex}")
private int bcIndex;
在ExternalContext#getRequestParameterMap
/ @PostConstruct
听众中使用preRenderView
:
//@PostConstruct
public void init() {
bcIndex = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("bcIndex");
}
使用<f:viewParam>
在您的视图中制作一个绑定:
<f:metadata>
<f:viewParam name="index" value="#{myRequestBean.bcIndex}" />
</f:metadata>