zoukankan      html  css  js  c++  java
  • spring mvc集成freemarker使用

      freemarker作为视图技术出现的比velocity早,想当年struts风靡一时,freemarker作为视图层也风光了一把。但现在velocity作为后起之秀的轻量级模板引擎,更容易得到青睐。这里不讨论velocity,有兴趣的同学可以看下。freemarker虽然比velocity重,但它确实功能强大,比如日期、货币格式化提供了很多转换方法,还一个特色招牌菜就是宏指令,它可以像java里的方法调用一样在页面玩转视图处理。

      这里主要演示下怎么在当今最流行的spring mvc中集成freemarker。首先我们还是引入jar,先在maven的pom文件中加入:

      <dependency>
       <groupId>org.freemarker</groupId>
       <artifactId>freemarker</artifactId>
       <version>2.3.23</version>
      </dependency>

        接下来是在spring mvc的配置文件spring-mvc.xml中引入freemark的相关配置

       <!--配置freemarker视图解析器 -->
       <bean id="freemarkerConfig"
          class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/" />
       </bean>

       <bean id="ViewResolver"
          class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="suffix" value=".html" />
        <property name="contentType" value="text/html; charset=UTF-8" />
       </bean>

      最后修改html文件,把原来velocity的变量名外面再套一个大括号就可以了,当然其他语法格式也需要相应修改,如循环要由foreach改为list:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>测试桩配置页面</title>
    </head>
    <body>
        <form id="interfaceForm">
            <h2 align="center">
                <font color="#FF0000">测试桩配置</font>
            </h2>
            <table
                style=" 1200px; height: 600px; margin-left: 5%; margin-top: 30px;"
                border="2px" bordercolor="gray" cellspacing="0px" cellpadding="5px">
                <tr height="10%">
                    <td rowspan="3" width="32%" valign="top" align="center"><font
                        size="4pt" color="black">接口名称:</font><br /> <br />
                        <div name="interfaceNames" id="interfaceNames"
                            style="border: solid 2px pink;  350px; height: 520px; overflow: auto;">
                            <!-- <table>
                                #foreach($method in $methodKeys)
                                <tr valign="top" style="height: 25px;">
                                    <td align="center" width="150px"><a
                                        onclick="getMethodContent('$method');">$method</a></td>
                                    <td width="100px" align="left"><a
                                        style="text-decoration: none;"
                                        onclick="deleteInterfaceEntity('$method');">&nbsp;删除</a></td>
                                </tr>
                                #end
                            </table>
                             -->
                            <table>
                                <#list methodKeys as method>
                                <tr valign="top" style="height: 25px;">
                                    <td align="center" width="150px"><a
                                        onclick="getMethodContent('${method}');">${method}</a></td>
                                    <td width="100px" align="left"><a
                                        style="text-decoration: none;"
                                        onclick="deleteInterfaceEntity('${method}');">&nbsp;删除</a></td>
                                </tr>
                                </#list>
                            </table>
                        </div></td>
                    <td>接口名: <input type="text" name="interfaceName"
                        id="interfaceName" style=" 400px" /> &nbsp;&nbsp;&nbsp; <input
                        type="button" value="新增/修改" onclick="generateInterfaceEntity();" /></td>
                </tr>
                <tr>
                    <td><font size="4pt" color="black"> 接口报文:</font><br /> <br />
                        <textarea name="interfaceBody" id="interfaceBody"
                            style=" 700px; height: 450px; margin-left: 50px;">
                        </textarea></td>
                </tr>
            </table>
        </form>
    </body>

      启动tomcat,页面的功能展示跟原来是一样的。velocity的集成点击这里spring mvc集成velocity使用,可以比对着看velocity和freemarker的集成,你会发现两者相差无几。其实如果你的项目两者都用到了,是可以同时集成的。

  • 相关阅读:
    Window下安装redis
    Redhat安装python环境(readline模块)
    Golang之hello,beego
    Golang之go 命令用法
    Golang之Mysql事务
    Golang之waitgroup用法
    记录java版本不兼容的坑,(kafka运行报错)
    位运算的技巧(有拓展的技巧)
    关于单片机软件框架的一点思考
    解决main.o(.data) type RW incompatible with bsp.o(.ARM.__AT_0x24001000) type ZI in er RW_IRAM2.(转载)
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/8119027.html
Copyright © 2011-2022 走看看