07(07年属什么)

  本篇文章为你整理了07(07年属什么)的详细内容,包含有07年现在多大岁了 07年属什么 0713男团 07式军服 07,希望能帮助你了解 07。

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

  
它是简单的,专用的语言,不是像PHP那样成熟的变成语言。那就意味着要准备数据在在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示以及准备好的数据。在模板中,可以更加专注于如何展现数据,而在模板之外可以专注于要展示什么数据

  
 

  二、freemarker环境搭建 快速入门

  需要创建Spring Boot + Freemarker 工程用于测试模板

  2.1、创建测试工程

  


 ?xml version="1.0" encoding="UTF-8"? 

 

   project xmlns="http://maven.apache.org/POM/4.0.0"

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

   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

   modelVersion 4.0.0 /modelVersion

   groupId com.coolman /groupId

   artifactId freemarker-demo /artifactId

   version 1.0-SNAPSHOT /version

   properties

   maven.compiler.source 8 /maven.compiler.source

   maven.compiler.target 8 /maven.compiler.target

   /properties

   dependencies

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-web /artifactId

   /dependency

   !--freemarker springboot starter--

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter-freemarker /artifactId

   /dependency

   !-- lombok --

   dependency

   groupId org.projectlombok /groupId

   artifactId lombok /artifactId

   /dependency

   /dependencies

   /project

  

 

  
settings:

   template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试

   suffix: .ftl #指定Freemarker模板文件的后缀名

   template-loader-path: classpath:/templates #指定模板文件存放的位置

  

 

 

  
import org.springframework.boot.SpringApplication;

  import org.springframework.boot.autoconfigure.SpringBootApplication;

  @SpringBootApplication

  public class FreemarkerApplication {

   public static void main(String[] args) {

   SpringApplication.run(FreemarkerApplication.class, args);

  

 

 

  
在resources下创建templates,并创建模板文件freemarker.ftl文件(模板中的插值表达式最终会被freemarker替换成具体的数据)

  
import freemarker.template.TemplateException;

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.web.bind.annotation.GetMapping;

  import org.springframework.web.bind.annotation.RequestMapping;

  import org.springframework.web.bind.annotation.RestController;

  import java.io.FileWriter;

  import java.io.IOException;

  import java.util.HashMap;

  @RestController

  @RequestMapping("/freemarker")

  public class FreemarkerController {

   // 引入freemarker.template包下的Configuration类,用来获取指定的模板对象

   @Autowired

   private Configuration configuration;

   * 通过模板文件,生成html文件

   @GetMapping("/test")

   public String getHtml() {

   try {

   // 使用Configuration的getTemplate方法,指定模板文件,获取模板对象

   Template template = configuration.getTemplate("HelloFreemarker.ftl");

   // 绑定数据

   // 数据1:

   HashMap String, Object map = new HashMap ();

   map.put("name", "SuperCoolMan");

   map.put("age", 99);

   FileWriter fileWriter = new FileWriter("E:\\系统默认\\桌面\\news-init\\freemarker-demo\\src\\main\\resources\\testHtml\\HelloFreemarker.html");

   template.process(map, fileWriter);

   return "SUCCESS!";

   } catch (IOException TemplateException e) {

   e.printStackTrace();

   return "ERROR!";

  

 

 

  
import freemarker.template.TemplateException;

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.web.bind.annotation.GetMapping;

  import org.springframework.web.bind.annotation.RequestMapping;

  import org.springframework.web.bind.annotation.RestController;

  import java.io.FileWriter;

  import java.io.IOException;

  import java.util.HashMap;

  @RestController

  @RequestMapping("/freemarker")

  public class FreemarkerController {

   // 引入freemarker.template包下的Configuration类,用来获取指定的模板对象

   @Autowired

   private Configuration configuration;

   * 通过模板文件,生成html文件

   @GetMapping("/test")

   public String getHtml() {

   try {

   // 使用Configuration的getTemplate方法,指定模板文件,获取模板对象

   Template template = configuration.getTemplate("HelloFreemarker.ftl");

   // 绑定数据

   // 数据1:

   HashMap String, Object map = new HashMap ();

   map.put("name", "SuperCoolMan");

   map.put("age", 99);

   // 数据2:

   map.put("person", new Person("超级猛男", 18));

   FileWriter fileWriter = new FileWriter("E:\\系统默认\\桌面\\news-init\\freemarker-demo\\src\\main\\resources\\testHtml\\HelloFreemarker.html");

   template.process(map, fileWriter);

   return "SUCCESS!";

   } catch (IOException TemplateException e) {

   e.printStackTrace();

   return "ERROR!";

  

 

 

  
插值(Interpolation):即${...}部分,freemarker会用真实的值代替${}(PS:如果返回的数据中没有该真实值,freemarker服务会直接报错)

  
FTL指令:和HTML标记类似,名字前加#予以区分,Freemarker会解析标签中的表达式或逻辑

  
文本,仅文本信息,这些不是freemarker的注释、插值、FTL指令的内容会被freemarker忽略解析,直接输出内容

  
为了Controller尽可能简略,创建一个getData方法,返回一个Map集合,Controller方法直接调用这个getData生成测试数据即可

  


 private Map String, Object getData() {

 

   HashMap String, Object map = new HashMap ();

   // String类型:

   map.put("name", "SuperCoolMan");

   map.put("age", 99);

   // Person类型:

   map.put("person", new Person("超级猛男", 18));

   return map;

  

 

  
#list wifeList as wife

   序号:${wife_index + 1} br/ #--freemarker中FTL指令自带的序号属性,默认从0开始--

   姓名:${wife.name} br/

   年龄:${wife.age} br/ br/

   /#list

  

 

 

  
HashMap String, Object anOtherMap = new HashMap ();

   anOtherMap.put("smallWife1", new Person("莫妮卡", 18));

   anOtherMap.put("smallWife2", new Person("玛丽莲梦露", 18));

   map.put("smallWife", anOtherMap);

  

 

 

  


 b Map + Person 类型中的数据展示: /b br/ 

 

   b 方式一:通过map[keyname].property 输出对应信息: /b br/

   性别:${wifeMap[smallWife1].name} br/

   年龄:${wifeMap[smallWife1].age} br/

   b 方式二:通过map.keyname.property 输出对应信息: /b br/

   性别:${wifeMap.smallWife2.name} br/

   年龄:${wifeMap.smallWife2.age} br/

  

 

  
if指令即判断指令,是常用的FTL指令,freemarker在解析的时候遇到if会进行判断,条件为真则输出if中间的内容,否则跳过内容不在输出

  
例:${(stu.bestFriend.name)!"默认值"}表示如果stu或者bestFriend或者name为空默认显示默认值

  
point是数字型,使用${point}会显示这个数字的值,每三位使用逗号隔开

  如果不像显示为每三位分隔的数字,可以使用c函数将数字转成字符串输出

  指令格式如下所示

  ${point?c}

  以上就是07(07年属什么)的详细内容,想要了解更多 07的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: