【发布时间】:2013-09-12 16:42:55
【问题描述】:
我注意到在 Grails 控制器中,控制器中有一个 params 对象,请求上有一个 params 对象。
有什么区别?
【问题讨论】:
标签: grails controller request
我注意到在 Grails 控制器中,控制器中有一个 params 对象,请求上有一个 params 对象。
有什么区别?
【问题讨论】:
标签: grails controller request
控制器中的params 在GetParamsDynamicProperty 中定义为:
paramsMap = new GrailsParameterMap(request);
request.params 在GrailsWebRequest 中定义为:
if (originalParams == null) {
originalParams = new GrailsParameterMap(getCurrentRequest());
}
params = (GrailsParameterMap)originalParams.clone();
两者都是根据当前请求创建的,并且应该包含相同的数据。
【讨论】:
控制器中的params 是Grails Controller Artefact 中的一个属性(即getParams()),它将请求参数表示为mutable HashMap,它可以灵活地在应用程序中进行修改。
与 request.getParameterMap() 相比,它为您提供了一个不可变的映射,您不能像在 params 中那样修改它。
话虽如此,我想您指的是parameterMap,而不是request 中的params。 :)
【讨论】: