我想将model
字段Interceptor
用于 JSON REST 响应。
控制器方法以域对象响应:
def show(String id) {
respond User.get(id)
}
JSON 视图使用JsonViewJsonRenderer
which extends DefaultViewRenderer
,它直接调用
view.render(model, request, response)
并且不公开ModelAndView
实例。其他渲染器,例如DefaultHtmlRenderer
,通过以下方式公开模型:
applyModel(context, object)
有没有办法在响应 JSON 响应时填写模型字段?我是否需要建立自己的子类DefaultHtmlRenderer
集ModelAndView
?
作为一种解决方法,我可以ModelAndView
为每个响应创建一个,但这似乎不符合 Grails 的易用性精神:
def show(String id) {
respond new ModelAndView('user/show', User.get(id))
}