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