java freemarker 教程_Freemarker教程1(基本使用)

简介

FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件

JavaEE中的两种开发方式

前后端不分离

要求程序员要掌握js,为了简化页面开发,引入页面模板,页面模板整体上来说又可以分为两大类

前端模板

前端模板就是后缀为html的模板,代表就是Thymeleaf,这种模板有一个好处就是不需要服务端解析就能直接在浏览器中打开。

后端模板

必须经过服务端解析才能被浏览器展示出来的模板

JSP

Freemarker

velocity

前后端分离

前后端分离的时候,后端纯粹只是接口,没有任何页面。所有的页面由前端完成,前端会使用相关的模板。

Vue

AngularJS

React

HelloWorld案例

创建一个maven项目

整合spring和SpringMVC

引入freemarker

1.引入freemarker依赖

org.freemarker

freemarker

2.3.28

2.创建freemarker变量文件

freemarker-var.properties

24adf27f8d3bf716c5772cf52c649867.png

3.配置视图解析器

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

expression="org.springframework.stereotype.Controller" />

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

classpath:freemarker-var.properties

class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

10

zh_CN

yyyy-MM-dd HH:mm:ss

yyyy-MM-dd

HH:mm:ss

#.####

class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">

value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />

4.测试

在WEB-INF下创建 index.ftl

40775bf36bf279d3c1d049aee6d318ed.png

controller跳转到index.ftl页面

@Controller

public class UserController {

@RequestMapping("/hello")

public String hello(){

return "index";

}

}

插值规则

通用插值

字符串,数字,Boolean型,Date类型

@RequestMapping("/hello")

public String hello(Model m){

m.addAttribute("name", "张三");

m.addAttribute("age", 18);

m.addAttribute("enable", true);

m.addAttribute("birth",new Date());

return "index";

}

Insert title here

Hello Freemarker

${root}


${name}

${age}

${enable?string("true","false")}

${birth?string("yyyy-MM-dd")}

08a7c3f96d8232b78d1678afb27812f0.png

数字格式化插入

数字格式化插值可采用#{expr;format}形式来格式化数字,其中format可以是:

mX:小数部分最小X位

MX:小数部分最大X位

#{x;M2}

#{y;M2}

#{x;m3}

#{y;m3}

db8d30ccd3008d30431ff8c0d673a9f5.png

eclipse安装Freemarker插件

ceae6e9cd71c7354eea2fffc1c92af86.png

重启即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值