天天看点

新手配置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代码都可以让他自动生成,提高开发效率。

配置这个东西相对来说比较简单,应该可以很快的就学会