【问题标题】:JSF 2.0 + Spring 3, retrieving request parameter via annotationJSF 2.0 + Spring 3,通过注解检索请求参数
【发布时间】:2011-12-19 02:44:17
【问题描述】:

在本机 JSF 2.0 环境中,用户可以使用类似的方式引用请求参数

@ManagedProperty("#{param.id}")
private Long id;

但是我使用 Spring 来管理 JSF bean,所以在我的例子中,@ManagedProperty 注释被忽略了。在 faces-config.xml 中仍然可以使用 #{param.id} 语句,但基于注解的配置显然更可取。

有没有办法用 Spring 注解来解决这样的语句?

【问题讨论】:

    标签: java spring jsf jsf-2


    【解决方案1】:

    您可以尝试将 @Value 与 Spring 表达式语言一起使用。应该有request 变量可用:

    @Value("#{request.getParameter('id')}")
    private Long id
    

    【讨论】:

    • 我收到此错误:在“org.springframework.beans.factory.config.BeanExpressionContext”类型的对象上找不到属性或字段“请求” - 可能不公开?
    • @Nab 可能您的上下文不是 WebApplicationContext 或者您的 bean 不是请求范围。
    • 这很奇怪,我使用的是自定义 ViewScoped bean (blog.primefaces.org/?p=702)。 Spring 也使用 Spring Boot 实现,主类扩展了 SpringBootServletInitializer。调用 FacesContext 的 getRequestParameterMap 效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多