FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯 Java 编写,FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由FreeMarker 生成页面,通过模板显示准备的数据。符合MVC模式,采用哈希表存储,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。

简单实现:

JAVA:(我不是后端,只能说下我所知道的实现形式)

在新建工程时,可以勾选模板的使用:

FreeMarker与Thymeleaf

 

1.引入依赖jar包

<dependency>  
<groupId>freemarker</groupId>  
<artifactId>freemarker</artifactId>  
</dependency>  

  

2.bean配置

<!-- 配置Freemarker屬性文件路徑 -->
<bean >
    <property name="location" value="classpath:conf/freemarker.properties" />
</bean>
<!-- 配置freeMarker模板加載地址 -->
<bean >
    <!-- 視圖解析器會在/WEB-INF/ftl/路徑下掃描視圖文件 -->
    <property name="templateLoaderPath" value="/WEB-INF/ftl/" />
    <property name="freemarkerVariables">
        <map>
            <entry key="xml_escape" value-ref="fmXmlEscape" />
        </map>
    </property>
</bean>
<bean  />
<!-- 配置freeMarker視圖解析器 -->
<bean >
    <property name="viewClass"        value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
    <!-- 掃描路徑內所有以ftl結尾的文件 -->
    <property name="viewNames">
        <array>
            <value>*.ftl</value>
        </array>
    </property>
    <property name="contentType" value="text/html; charset=UTF-8" />
    <property name="exposeRequestAttributes" value="true" />
    <property name="exposeSessionAttributes" value="true" />
    <property name="exposeSpringMacroHelpers" value="true" />
    <property name="requestContextAttribute" value="request" />
    <!-- 給視圖解析器配置優先級,你可以給之前jsp視圖解析器的值配為2 -->
    <property name="order" value="1" />
</bean>

3.控制层controller返回数据或者数据视图

return new ModelAndView("xxx/xxx/detail", map)

4.页面中FreeMarker语法数据回显示(官方教程)

<#list provinces as p>
    <option value="${p!}">${p.english()!}</option>
</#list>

<#list sequence>
    Part executed once if we have more than 0 items
<#items as item>
    Part repeated for each item
</#items>
    Part executed once if we have more than 0 items
<#else>
    art executed when there are 0 items
 </#list>   
                                            
<#if condition>
     ...
<#elseif condition2>
    ...
<#elseif condition3>
    ...
    ...
<#else>
     ...
</#if>  

注:使用模板常用的就是数据回显和共用。可以使用<#include>标签和${widget()}函数加载共用的ftl页面和css,js。

 

 

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等,在spring4.0中推荐使用thymeleaf来做前端模版引擎。

 

1.配置bean,容器初始化加载xml文件

1 <bean name="menuManager" class="xxxxxx.authority.MenuManager" init-method="init">
2         <property name="domainMenus">
3             <map>
4                 <entry key="*" value="menu/xxxx.xml"/>
5             </map>
6         </property>
7     </bean>
View Code

相关文章:

  • 2022-12-23
  • 2021-11-13
  • 2021-07-04
  • 2021-07-08
  • 2021-10-16
  • 2022-12-23
  • 2021-09-29
猜你喜欢
  • 2022-12-23
  • 2021-12-01
  • 2021-07-19
  • 2022-12-23
  • 2021-12-09
  • 2021-10-25
  • 2021-08-18
相关资源
相似解决方案