当前位置: 首页 > news >正文

php网站开发环境配置企业网站建设的基本标准

php网站开发环境配置,企业网站建设的基本标准,网络广告投放网站,扁平化设计 网站Freemarker概述 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库&#xff0c…

Freemarker概述

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

环境搭建

  1. 工程依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- apache 对 java io 的封装工具库 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version></dependency></dependencies>
  1. application.yml配置文件
server:port: 8881 #服务端口
spring:application:name: freemarker-demo #指定服务名freemarker:cache: false  #关闭模板缓存,方便测试settings:template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试suffix: .ftl               #指定Freemarker模板文件的后缀名

在resources\templates\目录下创建01-basic.ftl文件

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Hello World!</title>
</head>
<body>
<b>普通文本 String 展示:</b><br><br>
Hello ${name} <br>
<hr>
<b>对象Student中的数据展示:</b><br/>
姓名:${stu.name}<br/>
年龄:${stu.age}
<hr>
</body>
</html>

创建控制器

package com.heima.freemarker.controller;import com.heima.freemarker.entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;@Controller
public class HelloController {@GetMapping("/basic")public String hello(Model model){model.addAttribute("name","freemarker");Student student = new Student();student.setName("小明");student.setAge(18);model.addAttribute("stu",student);return "01-basic";}
}

Freemarker指令语法

基础语法

  1. 注释:<#-- -->
  2. 插值:${…}部分,freemarker会用真实的值代替${…}
  3. FTL(FreeMarker Template Language)指令:<# >FTL指令</#>
  4. 文本:不加任何标记会被直接输出

FTL指令

  • 集合指令-List:<#list></#list>
<#list stus as stu><tr><td>${stu_index+1}</td> <!--从零开始--><td>${stu.name}</td><td>${stu.age}</td><td>${stu.money}</td></tr></#list>

上面的stus是model中的一个列表属性。

  • 集合指令-Map
输出stu1的学生信息:<br/>
姓名:${stuMap['stu1'].name}<br/>
年龄:${stuMap['stu1'].age}<br/>
<br/>
<a href="###">方式二:通过map.keyname.property</a><br/>
输出stu2的学生信息:<br/>
姓名:${stuMap.stu2.name}<br/>
年龄:${stuMap.stu2.age}<br/><br/>

变量map

 <#list stuMap?keys as key><tr><td>${key_index+1}</td><td>${stuMap[key].name}</td><td>${stuMap[key].age}</td><td>${stuMap[key].money}</td></tr></#list>
  • if指令
<#if expression>
<#else>
</#if>

在freemarker中,判断是否相等,=与==号等价

空值处理

  1. 判断某变量是否存在使用“??”
    用法为:variable??,如果该变量存在,返回true,否则返回false
<#if stus??><#list stus as stu></#list>
</#if>
  1. 缺失变量默认使用"!"
    列如,${name!‘’}表示如果name为空显示空字符串

内建函数

内建函数语法格式:变量+?+函数名称

  1. stus集合的大小:${stus?size}
  2. 日期格式化:
    在这里插入图片描述3. 将json字符串转为对象
<#assign text="{'bank':'工商银行','account': '102313213123'}">
<#assign data=text?eval/>
开户行:${data.bank} 账号:${data.account}

输出静态化文件

实现思路

使用freemarker原生Api将页面生成html文件
在这里插入图片描述

@SpringBootTest(classes = FreemarkerDemoApplication.class)
@RunWith(SpringRunner.class)
public class FreemarkerTest {@Autowiredprivate Configuration configuration;@Testpublic void test() throws IOException, TemplateException {Template template = configuration.getTemplate("02-list.ftl");/*** 合成方法*/template.process(getData(),new FileWriter("g:/list.html"));}private Map getData(){Map<String,Object> map = new HashMap<>();//------------------------------------Student stu1 = new Student();stu1.setName("小强");stu1.setAge(18);stu1.setMoney(1000.86f);stu1.setBirthday(new Date());//小红对象模型数据Student stu2 = new Student();stu2.setName("小红");stu2.setMoney(200.1f);stu2.setAge(19);//将两个对象模型数据存放到List集合中List<Student> stus = new ArrayList<>();stus.add(stu1);stus.add(stu2);//向model中存放List集合数据map.put("stus",stus);//------------------------------------//创建Map数据HashMap<String,Student> stuMap = new HashMap<>();stuMap.put("stu1",stu1);stuMap.put("stu2",stu2);// 3.1 向model中存放Map数据map.put("stuMap", stuMap);return map;}
}
http://www.dtcms.com/a/590636.html

相关文章:

  • 建电子商务网站注意事项自己怎么做网站免费的
  • 咖啡店网站建设模版上海闵行区邮编
  • 湖南省建设银行网站6大连做网站比较好的公司
  • 三亚做网站多少钱一平方网站建设项目推文
  • 一键安装Claude Code脚本
  • 太平洋保险网站域名建设网站
  • 分类信息网站建设模板wordpress 显示小工具栏
  • 网站不备案做seo没用网站顶部怎么做新浪链接
  • 平台类网站建设胡方案明细wordpress 文章 插件
  • C语言算法入门:从生活到编程的思维转变
  • 硅基计划6.0 JavaEE 肆 网络网络编程
  • 南宁网站建设建站系统wordpress仿微博发文插件
  • 邯郸推广网站建设哪个好济南网站免费制作
  • 在线制作图片热区搜索引擎优化的主题
  • 字符串贪心:字典序 回文 括号
  • 实现AI和BI整合的初步思路和探索
  • 徐州网站关键词各类手机网站建设
  • 做音乐网站赚钱吗中信云做网站
  • 兰州网站建设平台分析指数函数图像
  • 从零掌握U-Net数据集训练:原理到实战的完整指南
  • 石家庄行业网站建设阿里巴巴官网入口
  • 来广营做网站公司游戏平台搭建
  • 【数值分析】12-非线性方程的求根方法-习题(1-8)
  • 焦作网站建设设计公司上海建设工程招投标在什么网站
  • 惠州建设网站开发汕头达濠
  • 位置编码演进史:SIN → ALiBi → RoPE → PI → NTK → YARN
  • 网站建设是必须的吗苏州工业园区两学一做教育网站
  • 鹤峰网站制作win7下使用wordpress
  • ThreadLocal中key为什么是弱引用,value为什么是强引用
  • 天津刘金鹏做网站网站手机版管理链接