Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Spring托管的支持bean中使用JSF2@ManagedProperty_Spring_Jsf 2 - Fatal编程技术网

在Spring托管的支持bean中使用JSF2@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

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

建议?

其实很简单。我知道三种注射方法:

  • 将Spring的
    @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>