grails - Grails JSON渲染器未公开拦截器模型

标签 grails view json-view

我想将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/

相关文章:

grails - Spring Social Facebook插件-HTTP状态404-/ssconnect/facebook

testing - Grails 测试和@Transactional

android 使用 XML 布局中的 View 来绘制 Canvas

MySQL - 根据条件更新表 1,并根据其他表 2 更新最大值(值)

inheritance - Grails 3:类继承不适用于json-views

spring - 使用 Map 类型的构造函数参数定义 Spring bean

tomcat - 在 tomcat 中托管 grails 应用程序

android - 获取对话框中 View 相对于父 View 的位置

json - 有没有办法在 Postman 中折叠所有 json 字段

java - 如何使用带有嵌套对象的@Jsonview 进行序列化