我不知道如何在Spring Boot中将POJO发送到模板。
这是我的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]
答案 0 :(得分:0)
根据JavaBeans规范,类本身(DebugTest
)也必须是公共的。另外,默认情况下不会显示字段。通常最好定义getter方法(也许使用Lombok),但是如果要使用字段,请像这样配置ObjectWrapper
。在您使用Spring Boot时,我认为您的application.properites
中将是这样的:
spring.freemarker.settings.objectWrapper=DefaultObjectWrapper(2.3.28, exposeFields = true)