Playframework 1.2.4: получить результаты render() в виде строки?
В контроллере play framework 1.2.4 можно ли получить содержимое шаблона или тега в виде строки перед выводом в браузер?
Я хочу быть в состоянии сделать это:
String json = renderAsString("/path/to/template.json", var1, var2);
//then use json as the body of a Play.WS request body.
2 ответа:
Решение основано на предположении, что вы говорите о Playframe Work 1.x
Если вы используете Groovy template engine :
Map<String, Object> args = ... Template template = TemplateLoader.load("path/to/template.suffix"); String s = template.render(args);
И у вас есть короткий путь, если вы используете движок шаблонов ритма :
String s = Rythm.render("path/to/template.suffix", param1, param3...);
Или вы также можете использовать именованные аргументы:
Map<String, Object> args = ... String s = Rythm.render("path/to/template.suffix", args);
Примечание Заводной способ также работает для ритма, если ваш файл шаблона помещен в папку
app/rythm
.
в дополнение к Зеленый ответ.
Если вы хотите создать json, вам лучше использовать gson, а не создавать свою собственную строку с помощью заводных шаблонов. Gson включен в Play Framework 1.2.X.
Вы можете найти дополнительную информациюздесь . Пример из Gson doc:
class BagOfPrimitives { private int value1 = 1; private String value2 = "abc"; BagOfPrimitives() { // no-args constructor } } BagOfPrimitives obj = new BagOfPrimitives(); Gson gson = new Gson(); String json = gson.toJson(obj); //json is {"value1":1,"value2":"abc"}
Вы также можете использовать Flexjson вместо gson.