天天看點

新手配置springmvc+freemarker過程

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

新手配置springmvc+freemarker過程

引入了jar包之後,就可以開始在springmvc的配置檔案中,配置freemarker的beans

首先定義視圖解析器為freemarker,然後字尾那裡可以配置為html那樣就可以讓html具有jsp的${}取值功能了,當然還有其他很多東西

新手配置springmvc+freemarker過程
<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假如存在空值是會報錯的

新手配置springmvc+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}的格式進行取值

新手配置springmvc+freemarker過程
@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的輸出語句用法百度一下就能了解

新手配置springmvc+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,經過測試你就可以在浏覽器看到結果

新手配置springmvc+freemarker過程

這種視圖模闆大大的提高了html的靈活性,我在工作中感覺有了這種東西,有時候html代碼都可以讓他自動生成,提高開發效率。

配置這個東西相對來說比較簡單,應該可以很快的就學會