2011-10-31 106 views
4

檢索請求參數在本地JSF 2.0環境中的用戶能夠參考請求參數的東西,如JSF 2.0 +彈簧3,通過註釋

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

但是我使用Spring來管理JSF豆,所以在我的情況下,@ManagedProperty註釋被忽略。仍然可以在faces-config.xml中使用#{param.id}語句,但基於註釋的配置顯然更可取。

有什麼方法可以用Spring註釋來解決這樣的語句嗎?

回答

3

您可以嘗試在彈簧表達式語言中使用@Value。應該有request變量可用:

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

我得到這個錯誤:屬性或字段「請求」不能在類型的對象中找到「org.springframework.beans.factory.config.BeanExpressionContext」 - 也許不公開? – Cenobyte321

+0

@Nab可能你的上下文不是WebApplicationContext,或者你的bean不是請求範圍。 – mrembisz

+0

這很奇怪,我正在使用自定義的ViewScoped bean(http://blog.primefaces.org/?p=702)。 Spring也使用Spring Boot來實現,主類擴展了SpringBootServletInitializer。調用FacesContext的getRequestParameterMap完美地工作。 – Cenobyte321