Freemarker的介绍及使用

介绍freemarker:
官方文档是这样介绍的:
Apache FreeMarker is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates……..
想看更多: Freemarker官网
大致意思就是:
Freemarker是一个模板引擎,一个Java库自动文本输出基于模板和数据变化。。。
特性
a. 强大的模板语言.
b. 多用途轻依赖
c. 国际化
d. XML处理能力
e. 通用的数据模型

开始配置
本章介绍的是Freemarker集成到SpringMVC

springmvc.xml配置:


    <bean id="freemarkerResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="order" value="1" />
        <property name="suffix" value=".ftl" />
        <property name="contentType" value="text/html;charset=utf-8" />
        
    bean>


     
    
    
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath">
            <value>/WEB-INF/view/value>
        property>
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">5prop>
                <prop key="default_encoding">UTF-8prop>
                <prop key="locale">UTF-8prop>
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ssprop>
                <prop key="time_format">HH:mm:ssprop>
                <prop key="number_format">0.####prop>
                <prop key="boolean_format">true,falseprop>
                <prop key="whitespace_stripping">trueprop>
                <prop key="tag_syntax">auto_detectprop>
                <prop key="url_escaping_charset">UTF-8prop>
            props>
        property>
    bean>

注意
很多人在用Freemarker做模板引擎的时候可能会经常犯的一个错误:
因为我们在配置视图解析器的时候一般会配置前缀prefix, 如下:

    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/">property>
        <property name="suffix" value=".ftl">property>
    

但是: 当我们用freemarker做模板引擎的时候配置了这段代码:

  <property name="templateLoaderPath">
            <value>/WEB-INF/view/value>
   property>

所以prefix就不用配置了(不然会报错)。

然后就是写你业务层的代码。。。。。。

控制层代码(例子)

    @RequestMapping("userList")
    public String findList(ModelMap modelMap){
        List findAllUser = userService.findAllUser();
        modelMap.addAttribute("users", findAllUser);
        return "user";
    }

视图层部分代码:

 <#list users as user>
      <tr>
        <td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user.id}span>td>
        <td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user.name}span>td>
        <td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user.password}span>td>
          <td width="160" height="65" align="center" valign="middle"><span class="STYLE15">${user_index}span>td>
      tr>
      #list>

结束语: 希望大家多多交流讨论

你可能感兴趣的:(Java-开源组件)