2012-02-06 30 views
3

下面是我如何檢索請求參數地圖在JSF是否有可能更多的參數添加到RequestParameterMap

FacesContext context = FacesContext.getCurrentInstance(); 
Map<String, String> requestMap = context.getExternalContext().getRequestParameterMap(); 

然而requestMapimmutable所以我不能編輯它。有沒有辦法在請求參數映射中添加更多參數?它有可能嗎?

+0

你可以提供一些細節嗎?你爲什麼要添加參數? – Thomas 2012-02-06 21:28:39

+0

不可以。您可以將屬性添加到請求中,但是參數只能在從客戶端獲取請求時解析一次。 – chahuistle 2012-02-06 21:29:24

回答

6

您通常只會在沒有需要此類參數的控件的某些代碼的情況下執行此操作。如果您需要傳遞請求範圍變量,則應使用request map

Java EE開發人員通常通過過濾器提供附加參數。在servlet環境中,可以使用Filter通過wrapper提供參數。 Portlet 2.0容器提供了類似的filter API。

我想以容器不可知的方式提供自定義參數映射,這可以通過自定義ExternalContext完成。配置自定義FacesContextFactory以覆蓋默認行爲。

詳情請參閱相關規範:

作爲更具體的瞭解爲什麼以及要做到這一點在a new question可能提供更多有用的答案。

相關問題