控制器和请求参数之间的区别

时间:2013-09-12 16:42:56

标签: grails controller request

我注意到在Grails控制器中,Controller中有一个params对象,请求中有一个params对象。

有什么区别?

2 个答案:

答案 0 :(得分:2)

控制器中的

params是Grails Controller Artefact中的一个属性(即getParams()),它将请求参数表示为mutable HashMap,可以灵活地在应用程序中进行修改

request.getParameterMap()形成对比,后者为您提供了一个不可变的地图,您不能像在params中那样修改它。

据说,我想你在parameterMap中指的是params而不是request。 :)

答案 1 :(得分:2)

控制器中的

paramsGetParamsDynamicProperty中定义为:

paramsMap = new GrailsParameterMap(request);

request.paramsGrailsWebRequest中定义为:

if (originalParams == null) {
    originalParams = new GrailsParameterMap(getCurrentRequest());
}
params = (GrailsParameterMap)originalParams.clone();

两者都是根据当前请求创建的,并且应包含相同的数据。