freemarker

Why would I use a templating engine? jsp include and jstl vs tiles, freemarker, velocity, sitemesh

佐手、 提交于 2019-11-27 09:02:44
问题 I'm about to choose to way to organize my view (with spring-mvc, but that shouldn't matter much) There are 6 options as far as I see (though they are not mutually exclusive): Tiles Sitemesh Freemarker Velocity <jsp:include> <%@ include file=".."> Tiles and Sitemesh can be grouped; so can Freemarker and Velocity . Which one within each group to use is not a matter of this discussion, there are enough questions and discussions about it. This is an interesting read, but can't quite convince me

前端模板引擎 -- Freemarker

六月ゝ 毕业季﹏ 提交于 2019-11-27 07:12:47
一、Freemarker介绍 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。 虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据,简单来讲就是模板加数据模型,然后输出页面。 FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件。 FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境。 以上内容来自: 官网 二、freemarker、thymeleaf、jsp比较 1. 现在为何越来越多的项目不使用JSP 尽管JSP已经存在了很长的时间,并且在Java Web服务器中无处不在,但是它却存在一些缺陷。JSP最明显的问题在于它看起来像HTML或XML,而事实上它并不是。大多数的JSP模板都采用HTML的形式,但是由于掺杂上了各种JSP标签库的标签和一些Scriptlet片段,使其变得极其混乱。这些特性虽然能够以很方便的方式为JSP带来动态渲染的强大功能,但是它也摧毁了我们想维持一个格式良好的文档的可能性。JSP缺乏良好格式的一个副作用就是它很少能够与其产生的HTML类似

Setting the content-type of a response in Struts2

痞子三分冷 提交于 2019-11-27 06:24:25
问题 So, I'm using freemarker templates with Struts2 to formulate my responses. However, since I'm trying to use taconite as well, I need the response to be sent with the content type of "text/xml". I can't seem to find a way to use freemarker directives to set the content type, and I am not well versed enough in struts to know if there is a way to do it through that. So, how should I go about this? 回答1: Or you can set it in the struts.xml <action name="..." class="..."> <result name="SUCCESS">

Spring Boot和thymeleaf , freemarker , jsp三个前端模块的运用

早过忘川 提交于 2019-11-27 05:44:36
spring boot和三个前端模块的运用 一 .Thymeleaf 在idea上创建spring boot 工程,勾选Thymeleaf前端模块,它会自动导入Thymeleaf的依赖 创建了spring boot工程后,勾选web和要用的前端模块 然后随便创建一个bean类 package com.liy.thymeleaf.bean; public class User { private int id; private String name; @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 然后直接写个controller类把数据弄到thymeleaf前端模块里去 import com.liy.thymeleaf.bean.User; import org

Freemarker: How to iterate through the Map using enums as keys

假如想象 提交于 2019-11-27 04:33:57
问题 The following code does not work because Freemarker seems to cast the value of the expression inside [] to String and then to use it as a key, which is not what is actually expected. Preparing a template model: Map<MyEnum, Object> myMap; myMap.put(MyEnum.FOO, "Foo"); myMap.put(MyEnum.BAR, "Bar"); templateModel.put("myMap", myMap); my.ftl: <#list myMap?keys as key> <#assign value = myMap[key]> <li>${key} = ${value}</li> </#list> In the Freemarker documentation it is described how to access the

freemarker常用标签

ぃ、小莉子 提交于 2019-11-27 04:16:42
freemarker注释: ## 单选注释......... #* 多行注释 *# <#-- 此处是注释 --> 1、直接取map中的值: ${name} 2、取list集合的值:     <#list list as j > ${j.name} </#list> 3、大于小于判断:<#if dataLen gt 0 > </#if> 判断大小不能使用>、<符号。 4、遍历固定数值:<#list 1..dataLen as b> </#list> 从1开始递增,到dataLen,如果dataLen=3, 则循环三次 转载于:https://www.cnblogs.com/summer520/p/3512041.html 来源: https://blog.csdn.net/weixin_30634661/article/details/99370368

FreeMarker | 取值篇

旧巷老猫 提交于 2019-11-27 04:03:25
第一部分:Spring Boot 集成 FreeMarker 1、 pom.xml 需要这些依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 2、yml 我喜欢 yml,所以删掉 application.properties ,新建 application.yml 3、配置 在 application.yml 中添加如下配置 # freemarker spring: freemarker: template-loader-path: classpath:/templates/ cache: false charset: UTF-8 check-template-location: true content-type: text/html expose-request-attributes: true expose-session

FreeMarker标签介绍

依然范特西╮ 提交于 2019-11-27 04:02:58
FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出 4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。 FTL指令规则 FreeMarker有三种FTL标签,这和HTML的标签是完全类似的 开始标签:<#directivename parameters> 结束标签:</#directivename> 空标签: <#directivename parameters /> 实际上,使用标签时前面的#符号也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改为 @符号 插值规则 FreeMarker的插值有如下两种类型 1、通用插值:${expr} 2、数字格式化插值:#{expr}或者#{expr;format} 通用插值,有可以分为四种情况 a、插值结果为字符串值:直接输出表达式结果 b、插值结果为数字值:根据默认格式(#setting 指令设置)将表达式结果转换成文本输出。可以使用内建的字符串函数格式单个插值,例如 <#setting number_format = "currency" /> <#assign

freemarker语法介绍及其入门

假装没事ソ 提交于 2019-11-27 04:02:40
FreeMarker标签使用 一、FreeMarker模板文件主要有4个部分组成 1、文本,直接输出的部分 2、注释,即<#--...-->格式不会输出 3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出 4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。 FTL指令规则 FreeMarker有三种FTL标签,这和HTML的标签是完全类似的 开始标签:<#directivename parameters> 结束标签:</#directivename> 空标签: <#directivename parameters /> 实际上,使用标签时前面的#符号也可能变成@,如果该指令是一个用户指令而不是系统内建指令时,应将#符号改为 @符号 插值规则 FreeMarker的插值有如下两种类型 1、通用插值:${expr} 2、数字格式化插值:#{expr}或者#{expr;format} 通用插值,有可以分为四种情况 a、插值结果为字符串值:直接输出表达式结果 b、插值结果为数字值:根据默认格式(#setting 指令设置)将表达式结果转换成文本输出。可以使用内建的字符串函数格式单个插值,例如 <#setting number_format = "currency" /> <#assign

Spring Boot实践——SpringMVC视图解析

非 Y 不嫁゛ 提交于 2019-11-27 01:35:44
一、注解说明   在spring-boot+spring mvc 的项目中,有些时候我们需要自己配置一些项目的设置,就会涉及到这三个,那么,他们之间有什么关系呢? 首先,@EnableWebMvc=WebMvcConfigurationSupport,使用了@EnableWebMvc注解等于扩展了WebMvcConfigurationSupport但是没有重写任何方法。 所以有以下几种使用方式: @EnableWebMvc+extends WebMvcConfigurationAdapter,在扩展的类中重写父类的方法即可,这种方式会屏蔽springboot的@EnableAutoConfiguration中的设置 extends WebMvcConfigurationSupport,在扩展的类中重写父类的方法即可,这种方式会屏蔽springboot的@EnableAutoConfiguration中的设置 extends WebMvcConfigurationAdapter,在扩展的类中重写父类的方法即可,这种方式依旧使用springboot的@EnableAutoConfiguration中的设置 具体哪种方法适合,看个人对于项目的需求和要把控的程度 在WebMvcConfigurationSupport(@EnableWebMvc)和