在项目中如前端页面list.ftl,代码部分如下:

<!DOCTYPE html>
<html>
<#import "/spring.ftl" as spring>
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- Tell the browser to be responsive to screen width --><meta name="viewport" content="width=device-width, initial-scale=1"><!-- Font Awesome --><link rel="stylesheet" href="/static/plugins/fontawesome-free/css/all.min.css"><!-- icheck bootstrap --><link rel="stylesheet" href="/static/plugins/icheck-bootstrap/icheck-bootstrap.min.css"></head>
<body>

这里的 <#import “/spring.ftl” as spring> 怎么理解呢?

前端ftl模板中一定要引入spring.ftl

再说这个文件在哪里可以找到呢?

位置:项目下,External Libraries -> 找到Maven: org.springframework:spring-webmvc:5.1.7.RELEASE, -> spring-webmvc:5.1.7.RELEASE.jar ->org.springframework.web.servlet -> view -> freemarker ->spring.ftl

打开spring.ftl文件,可以看到定义很多宏指令

#这个宏名称为message,参数只有code,是我们国际化中最常用的,它实际调用了RequestContext的getMessage(String code)方法<#macro message code>${springMacroRequestContext.getMessage(code)}</#macro>#这个宏名称为messageArgs ,参数有两个code和args,国际化字符串中有占位符时可以用到,它实际调用了RequestContext的getMessage(String code, @Nullable Object[] args)方法<#macro messageArgs code, args>${springMacroRequestContext.getMessage(code, args)}</#macro>#这个与第二个类似,只是多了一个text参数,text传递的是默认值,调用了getMessage(String code, @Nullable Object[] args, String defaultMessage)<#macro messageArgsText code, args, text>${springMacroRequestContext.getMessage(code, args, text)}</#macro>

用法:

  1. 首先定义2个国际化配置文件
    message_zh_CN.properties:

    username=用户名
    title=欢迎来到{0},{1}!
    

    messages_en_US.properties:

    username=UserName
    title=welcome to {0},{1}!
    
  2. 编辑前端ftl模板
    <html>
    <!--一定要导入spring.ftl-->
    <#import "spring.ftl" as spring><body>
    <!--或者<@spring.message code="username" />-->
    <@spring.message "username" /><!--arg是一个在freemarker中定义的数组,包含了占位符{0},{1}对应的参数 -->
    <#assign arg = ["我的首页","张三"]>
    <@spring.messageArgs "title" arg /></body>
    </html>
    

    注意:
    <@spring.messageArgs> 第二个参数是一个freemarker数组,需要先用<#assign>指令定义好

freemarker使用自定义命令<@spring.*>实现实现国际化,通过@符号可以看出是自定义的指令。

如代码中:
<@spring.message code=“enms.add”/>
<@spring.message code=“enms.batchDelete”/>

项目中前端ftl模板了解相关推荐

  1. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  2. Struts项目中前端页面向后台页面传参中文出现乱码(Get请求)

    问题描述:Struts项目中前端页面向后台页面传递中文参数值,中文值传递到后台后出现乱码并且以???形式出现 解决方法: 1.前端页面js文件中使用encodeURI()方法将所传递的中文值加密起来( ...

  3. Web项目中前端页面引用外部Js和Css的路径问题

    公众号:南宫一梦 Web项目中前端页面引用外部Js和Css的路径问题 一般我们在做Web项目时,通常会将多个页面引入的公共js和css文件抽取出来,单独写成一个公共文件,以期方便各个页面单独引入,达到 ...

  4. IDEA下,如何在java项目中新增jsp模板文件

    IDEA下,如何在java项目中新增jsp模板文件 大家会不会有这样的烦恼,就是当想要创建一个jsp模板文件的时候,右键new的时候找不到JSP选项. 这是因为在创建项目的时候没有选中Web Appl ...

  5. Python网站导航项目-4.前端渲染模板

    每每用到别人的导航网站会充斥的各种的广告,以及很多无用的内容,用起来真的很烦人.把内容网址收藏到浏览器中又很不方便,因此基于git的前端代码结合Django Web开发自制一套简易的导航网站项目. 项 ...

  6. 下载项目中的excel模板文件.xlsx后,无法打开的问题

    题外话:通常在导入Excel文件时,会定义一套模板文件,让用户按此模板文件规定的内容进行填写,可以高效导入数据的同时,也利用Excel本身的功能,制定一些规则提示.有效性校验等,减少在代码中校验的繁琐 ...

  7. 《Vue》聊一聊实际项目中前端的几种皮肤实现和优缺点

    前言 在现代大前端领域中,换肤功能已经逐渐成为几乎所有应用的标配,尤其是暗夜模式被推广之后,皮肤功能就正式走到了大众的视野,同样,在web领域尤其是后台管理系统中皮肤功能也由此几乎成为了标配,恰好最近 ...

  8. SpringBoot 项目中使用velocity模板(转载)

    (不要使用这种模板了,spring boot最新版已经不支持了.使用FreeMarker吧:http://blog.csdn.net/clementad/article/details/5194262 ...

  9. django项目如何连接前端_Django项目中前端序列化参数获取

    我的网站: Python爬虫人工智能学习教程​www.python88.cn 最近在写一个django的web项目,后端代码基本都已经写好了,主要是前端,以前学过一段前端,只是对一些基本的方法知道,但 ...

最新文章

  1. Java基础班学习笔记(15)GUI图形界面编程
  2. c# 连续抓取页面内容
  3. “leave the world behind”十一快乐出行
  4. 慢动作输出Linux命令结果并用彩色显示
  5. w2k telnet port change
  6. c语言while跳不出来,这个while循环终止了却跳不出来为什么
  7. 关于Consul的几个问题
  8. 剑指offer之把二叉树打印成多行
  9. 机器学习——基于OpenCV和Python的智能图像处理(一)
  10. 【网络文件共享】04、rsync基础
  11. 【单目标优化求解】基于matlab被囊群算法(TSA)求解最优目标问题【含Matlab源码 1567期】
  12. msfvenom 生成php木马,利用msfvenom生成木马程序
  13. 【应用统计学】随机变量的概率分布,数学期望和方差及协方差
  14. 不知道华为手机识别图片文字怎么弄?2个识别方法收好了
  15. 汽车租赁APP应用开发
  16. 嵌入式应用层开发应该学习什么?
  17. 给表空间增加新的数据文件
  18. WMIC命令的利用技巧
  19. 字符串查找函数 php,php字符串查找函数(strrpos与strchr)
  20. cuda2D FDTD——share

热门文章

  1. python给excel排序_Python实现EXCEL表格的排序功能
  2. 通过社交媒体针对安全研究人员的社会工程学攻击活动
  3. 计算机组装与维修活动展示,《计算机组装维修》之组装计算机教学设计及案例...
  4. Ex20b示例程序:DLL测试客户程序
  5. burpsuite解决中文乱码的问题
  6. js公历日期转为农历日期
  7. atu打开服务器端文件失败,ATU操作流程.docx
  8. RS232 RTS和CTS是什么意思
  9. 计算机在线是什么,TIM电脑在线是什么意思?你清楚吗?
  10. zigbee的路由器能分配网络地址吗_光猫、路由器、交换机的区别与联系