2016-12-07 6 views
0

간단히 객체의 JSON 표현을 생성하여 템플릿으로 보내는 테스트 응용 프로그램을 만들고 프론트 엔드의 JS 스크립트에서 JSON을 사용하려고합니다. 나는 이것을하기 위해 Ratpack과 Java Handlebars를 사용하고있다.k 핸들 막대를 사용하여 템플릿에 JSON 보내기 java 및 ratpac

여기 내 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합니다. [email protected]

간단하게 다음과 같이 렌더링하고 싶습니다.

{"name":"Forlan","goals":1000} 

답변

1

의 사용중인 방법, 사용하는 그 반환 유형 JsonRenderhttps://ratpack.io/manual/current/api/ratpack/jackson/JsonRender.html

이다 Jackson.json(Object)https://ratpack.io/manual/current/api/ratpack/jackson/Jackson.html#json-java.lang.Object- 그래서 때 ' 그것을 템플릿을 통해 다시 실행하고, 단순히 Jackson.json 방법은 Renderer로 Ratpack에 알려진 반환 467db85c`

@() which results in what you're seeing: ratpack.jackson.internal.DefaultJsonRender "JsonRender #의 toString를 호출합니다. 그것은 Ratpack에게 당신이 Renderer에 제공 한 객체를 나타내는 방법을 알려줍니다. HTML과 혼합 JSON을 생산하기 위해

, 내가 이런 짓을 할 것이다 :

def jsonData = new groovy.json.JsonOutput.toJson(testDataJson) 
ctx.render(handlebarsTemplate('highchartTest.html', model: [model: jsonData])) 

나는이 시험하지 않았다 그러나 그것은 작동합니다.

+0

굉장, 고마워. – pocockn

-1

봅니다

<p>Name: {{name}}</p> 
<p>Goals: {{goals}}</p> 

대신

<p>{{model}}</p>