我注意到在Grails控制器中,Controller中有一个params对象,请求中有一个params对象。
有什么区别?
答案 0 :(得分:2)
params
是Grails Controller Artefact中的一个属性(即getParams()
),它将请求参数表示为mutable
HashMap,可以灵活地在应用程序中进行修改
与request.getParameterMap()形成对比,后者为您提供了一个不可变的地图,您不能像在params中那样修改它。
据说,我想你在parameterMap
中指的是params
而不是request
。 :)
答案 1 :(得分:2)
params
在GetParamsDynamicProperty中定义为:
paramsMap = new GrailsParameterMap(request);
request.params
在GrailsWebRequest中定义为:
if (originalParams == null) {
originalParams = new GrailsParameterMap(getCurrentRequest());
}
params = (GrailsParameterMap)originalParams.clone();
两者都是根据当前请求创建的,并且应包含相同的数据。