不理解一些很棒的 grails 细节。 我有 Controller LogsController,并且有logs.gsp 和映射的所有内容,因此当我尝试获取/logs/applog 时 - 从渲染中获取logs.gsp 或一些数据。 所以问题是:如何返回变量?我想做这样的事情: 打开页面 (logs/applog) -> 关闭返回(渲染?)变量作为 JSON -> 页面logs.gsp 获取该变量,用 javascript 解析它并显示数据。 但如果我写
render var as JSON;
仅获取 JSON 并且看不到页面logs.gsp 我怎样才能做到这一点? 谢谢。
最佳答案
render(view: 'logs', model: [var: var])
会将变量var
从 Controller 发送到logs.gsp。在gsp文件中,可以使用${var}来访问。所有这些都将在服务器端完成,因此您不需要 JSONObject。
就您而言,如果您想获取 JSON 变量并使用 javascript 访问它:
- 在 gsp 文件中,您需要 ajax 请求
- 在 Controller 中,check ajax
request 。如果是ajax请求,则
render var as JSON
将JSON对象返回给客户端。如果没有,请执行render(view: 'logs', model: [var: var])
正常返回页面。
关于javascript - Groovy Grails 发送/接收变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782020/