我想将model
中的Interceptor
字段用于JSON REST响应。
Controller 方法以域对象作为响应:
def show(String id) {
respond User.get(id)
}
JSON View 使用JsonViewJsonRenderer
扩展了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))
}
最佳答案
Is there a way to get the model field to be filled out when responding with a JSON response?
是。所有拦截器中都有一个
model
属性。通常,这可以通过拦截器的after()
方法访问。Do I need to build my own subclass of DefaultHtmlRenderer that sets the ModelAndView?
没有。
关于grails - Grails JSON渲染器未公开拦截器模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64087536/