2012-02-06 98 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可能提供更多有用的答案。

相关问题