我正在开发一个Spring WebMVC项目,该项目使用FreeMarker模板生成HTML输出。站点控制器返回视图名称和数据模型,然后将其输入视图模板。
样本控制器方法(在/src/main/java/com/mycompany/controller.java
中):
@RequestMapping("/example")
public ModelAndView handleRequest() {
ModelAndView mv = new ModelAndView("my_tempate");
mv.addObject("my_data", "my_value");
return mv;
}
此示例模板(位于/src/main/webapp/WEB-INF/views/my_template.ftl
中):
<title>Sample Template</title>
<p>I'm a sample template, I output: ${my_data}</p>
我打包.war
文件并使用mvn tomcat7:redeploy
将其部署到tomcat。对于我非常小的代码库,这个过程大约需要4-5秒。对于java代码的更改,我对这个编译时间没问题。但是,对于开发HTML模板,每次更改都需要重新部署.war
文件,这是一个非常不满意的工作流程。
是否可以将Spring设置为不从.war
文件包读取模板文件,而是在开发模式下从本地文件系统读取?所以我可以在源代码中指向像/home/user/my_project/my_template.ftl
这样的绝对路径,它在每个站点请求上都被解析。