1

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

有什么不同?

4

2 回答 2

2

paramsin controller 是 Grails Controller Artefact 中的一个属性(即getParams()),它将请求参数表示为一个mutableHashMap,它提供了在应用程序中进行修改的灵活性。

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

话虽如此,我想你指的是parameterMap而不是paramsin request。:)

于 2013-09-12T17:22:06.953 回答
2

params在控制器中的GetParamsDynamicProperty定义为:

paramsMap = new GrailsParameterMap(request);

request.paramsGrailsWebRequest中定义为:

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

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

于 2013-09-12T17:28:49.123 回答