2016-12-07 2 views
0

Я создаю тестовое приложение, которое просто создает JSON-представление объекта и отправляет его в шаблон. Затем я хочу использовать JSON в JS-скрипте на переднем конце. Для этого я использую Ratpack и Java Handlebars.kSend 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

метод вы используете, Jackson.json(Object)https://ratpack.io/manual/current/api/ratpack/jackson/Jackson.html#json-java.lang.Object- чей возвращаемый тип имеет JsonRenderhttps://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 возвращает то, что известно в Ratpack как Renderer. Он сообщает Ratpack, как представлять Объект, который вы предоставили Renderer.

Для получения JSON, смешанного с HTML, я хотел бы сделать что-то вроде этого:

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

Я не проверял это, но он должен работать.

+0

Awesome, thanks – pocockn

-1

Попробуйте использовать

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

вместо

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

 Смежные вопросы

  • Нет связанных вопросов^_^