在spring mvc中配置freemarker,首先你需要在工程中引入包

引入了jar包之後,就可以開始在springmvc的配置檔案中,配置freemarker的beans
首先定義視圖解析器為freemarker,然後字尾那裡可以配置為html那樣就可以讓html具有jsp的${}取值功能了,當然還有其他很多東西
<bean
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"
p:prefix="/" p:suffix=".ftl">
<property name="cache" value="false" />
<property name="viewClass"
value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
<property name="requestContextAttribute" value="base"></property>
<property name="order" value="0"></property>
</bean>
這個是定義一些freemarker的屬性,注意freemarker假如存在空值是會報錯的
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="" />
<property name="defaultEncoding" value="UTF-8" />
<property name="freemarkerSettings">
<props>
<prop key="tag_syntax">auto_detect</prop>
<prop key="template_update_delay">5</prop>
<prop key="defaultEncoding">UTF-8</prop>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="locale">zh_CN</prop>
<prop key="boolean_format">true,false</prop>
<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="time_format">HH:mm:ss</prop>
<prop key="number_format">0.######</prop>
<prop key="whitespace_stripping">true</prop>
<prop key="classic_compatible">true</prop> <!-- 空值處理 -->
<!-- <prop key="auto_import">/ftl/tags/index.ftl as p,/ftl/spring.ftl as s</prop> -->
</props>
</property>
</bean>
xml配置完了之後,就是可以開始寫測試控制器和頁面了。
我這裡寫了個測試的控制器,傳給頁面幾個值,然後在頁面那裡采用 ${msg}的格式進行取值
@RequestMapping(value = "test3")
public ModelAndView test3(HttpServletRequest request, HttpServletResponse response) {
ModelAndView mav = new ModelAndView("manager/test3");//
List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
mav.addObject("msg", "shenfeng");
mav.addObject("list", list);
return mav;
}
這個是測試的html,本來是寫了個循環的,可是後面你好像給我搞沒了,也就沒寫。freemarker的輸出語句用法百度一下就能了解
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>${msg}</title>
</head>
<body>
${msg} ftl
</body>
</html>
運作tomcat,經過測試你就可以在浏覽器看到結果
這種視圖模闆大大的提高了html的靈活性,我在工作中感覺有了這種東西,有時候html代碼都可以讓他自動生成,提高開發效率。
配置這個東西相對來說比較簡單,應該可以很快的就學會