kSend JSON 使用 handlebars java 和 ratpac 到模板
kSend JSON to template using handlebars java and ratpac
我正在创建一个测试应用程序,它只是创建一个对象的 JSON 表示并将其发送到模板,然后我想在前端的 JS 脚本中使用 JSON .我正在使用 Ratpack 和 Java Handlebars 来做到这一点。
这是我的 Ratpack 处理程序
class HighChartHandler extends InjectionHandler {
void handle(Context ctx, TestDataJson testDataJson) {
testDataJson.goals = 1000
testDataJson.name = "Nick"
def jsonData = json(testDataJson)
ctx.render(handlebarsTemplate('highchartTest.html', model: jsonData))
}
}
然后我尝试使用
简单地在页面上呈现数据
<h1>Graph Test</h1>
<p>This is a WIP highchart test</p>
<p>{{model}}</p>
但是我收到这条消息:
ratpack.jackson.internal.DefaultJsonRender@467db85c
我只想渲染类似
的东西
{"name":"Forlan","goals":1000}
尝试使用
<p>Name: {{name}}</p>
<p>Goals: {{goals}}</p>
而不是
<p>{{model}}</p>
您使用的方法,Jackson.json(Object)
https://ratpack.io/manual/current/api/ratpack/jackson/Jackson.html#json-java.lang.Object- whose return type is of JsonRender
https://ratpack.io/manual/current/api/ratpack/jackson/JsonRender.html
因此,当您通过模板 运行 它时,它只是调用“JsonRender#toString()which results in what you're seeing:
ratpack.jackson.internal.DefaultJsonRender@467db85c`
Jackson.json
方法 returns 在 Ratpack 中被称为 Renderer
。它告诉 Ratpack 如何表示您提供给 Renderer
.
的对象
为了生成 json 与 html 的混合,我会这样做:
def jsonData = new groovy.json.JsonOutput.toJson(testDataJson)
ctx.render(handlebarsTemplate('highchartTest.html', model: [model: jsonData]))
我还没有测试过,但应该可以。
我正在创建一个测试应用程序,它只是创建一个对象的 JSON 表示并将其发送到模板,然后我想在前端的 JS 脚本中使用 JSON .我正在使用 Ratpack 和 Java Handlebars 来做到这一点。
这是我的 Ratpack 处理程序
class HighChartHandler extends InjectionHandler {
void handle(Context ctx, TestDataJson testDataJson) {
testDataJson.goals = 1000
testDataJson.name = "Nick"
def jsonData = json(testDataJson)
ctx.render(handlebarsTemplate('highchartTest.html', model: jsonData))
}
}
然后我尝试使用
简单地在页面上呈现数据<h1>Graph Test</h1>
<p>This is a WIP highchart test</p>
<p>{{model}}</p>
但是我收到这条消息:
ratpack.jackson.internal.DefaultJsonRender@467db85c
我只想渲染类似
的东西{"name":"Forlan","goals":1000}
尝试使用
<p>Name: {{name}}</p>
<p>Goals: {{goals}}</p>
而不是
<p>{{model}}</p>
您使用的方法,Jackson.json(Object)
https://ratpack.io/manual/current/api/ratpack/jackson/Jackson.html#json-java.lang.Object- whose return type is of JsonRender
https://ratpack.io/manual/current/api/ratpack/jackson/JsonRender.html
因此,当您通过模板 运行 它时,它只是调用“JsonRender#toString()which results in what you're seeing:
ratpack.jackson.internal.DefaultJsonRender@467db85c`
Jackson.json
方法 returns 在 Ratpack 中被称为 Renderer
。它告诉 Ratpack 如何表示您提供给 Renderer
.
为了生成 json 与 html 的混合,我会这样做:
def jsonData = new groovy.json.JsonOutput.toJson(testDataJson)
ctx.render(handlebarsTemplate('highchartTest.html', model: [model: jsonData]))
我还没有测试过,但应该可以。