在Spring托管的支持bean中使用JSF2@ManagedProperty
我有一个由Spring管理的JSF支持bean,但我希望能够利用JSF中的@ManagedProperty。以下操作不起作用:在Spring托管的支持bean中使用JSF2@ManagedProperty,spring,jsf-2,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 bcIn
@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;
}
}
建议?其实很简单。我知道三种注射方法:
@Value
注释与隐式El{param}
对象一起使用:
@Value("#{param.bcIndex}")
private int bcIndex;
@PostConstruct
/预渲染视图中使用外部上下文#getRequestParameterMap
:
//@PostConstruct
public void init() {
bcIndex = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("bcIndex");
}
在视图中进行绑定:
我认为使用JSF的
@RequestScoped
注释就足够了。Spring context为每个HTTP请求返回一个bean实例,JSF也会这样做,为什么要混合这两个概念?@kolossus您提供的链接看起来有点过时。
<f:metadata>
<f:viewParam name="index" value="#{myRequestBean.bcIndex}" />
</f:metadata>