Открытое публичное поле POJO для FTL весной - PullRequest
0 голосов
/ 12 сентября 2018

Я не могу понять, как отправить POJO на мой шаблон в Spring Boot.

Вот мой POJO и мой контроллер:

class DebugTest {
    public String field = "Wooowee";
    public String toString() {
        return "testie " + field;
    }
}

@Controller
@RequestMapping("/debug")
public class WebDebugController {

    @RequestMapping(value = "/ftl", method = RequestMethod.GET)
    public ModelAndView ftlTestPage(Model model) {
        DebugTest test = new DebugTest();
        ModelAndView mnv = new ModelAndView("debug");
        mnv.addObject("test", test);
        return mnv;
    }

}

Вот мой шаблон:

HERES THE TEST: ${test}$
HERES THE TEST FIELD: ${test.field}$

Вот вывод (GET / debug / ftl):

HERES THE TEST: testie Wooowee$
HERES THE TEST FIELD: FreeMarker template error (DEBUG mode; use RETHROW in production!):
The following has evaluated to null or missing:
==> test.field  [in template "debug.ftl" at line 3, column 25]

[Java stack trace]

1 Ответ

0 голосов
/ 13 сентября 2018

Сам класс (DebugTest) также должен быть общедоступным, согласно Спецификации JavaBeans.Также поля по умолчанию не выставляются.Определение методов-получателей, как правило, лучше всего (возможно, с помощью Lombok), но если вы хотите использовать поля, настройте ObjectWrapper как таковой.Поскольку вы используете Spring Boot, я думаю, что это будет примерно так в вашем application.properites:

spring.freemarker.settings.objectWrapper=DefaultObjectWrapper(2.3.28, exposeFields = true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...