本文将详细讲解宏定义的概念、使用原理,以及如何在多个源文件中共享宏定义。 1. 宏定义的概念和使用原理 1.1 宏定义的基本概念 宏定义通过 #define 指令实现,它允许我们定义常量和宏函数。...函数宏允许在代码中使用类似函数调用的语法。例如: #define SQUARE(x) ((x) * (x)) 在这个例子中,SQUARE(x) 被定义为一个宏函数,它计算 x 的平方值。...当需要修改常量时,只需在宏定义中更改值即可,不需要在整个代码中查找和替换。...在多个文件中使用宏定义的方法 为了在多个源文件中共享宏定义,我们通常将宏定义放在一个头文件中,并在需要使用这些宏的源文件中包含这个头文件。以下是具体的步骤和示例。...2.2 在源文件中包含头文件 在每个需要使用宏的源文件中,使用 #include 指令包含头文件 macros.h。这样,源文件可以使用头文件中定义的宏。以下是两个示例源文件 a.c 和 b.c。
那么FreeMarker会知道你并不是用相同的符号表示运算符。这可以在您指定非引号标识符的地方,如宏和函数名称,参数名称以及所有类型的变量引用。(请注意,这些转义仅适用于标识符,而不是字符串文字。)...16.如何在FreeMarker模板中修改序列(列表)和哈希(映射)? 首先,您可能不想修改序列/散列,只需连接(添加)两个或更多的,这将导致新的序列/散列,而不是修改现有的序列/散列。...喜欢foo.bar(nullArg) 将调用bar方法 null作为参数,假设没有变量存在与“ 18.如何在表达式中使用指令(宏)的输出(作为另一个指令的参数)?...您可以在这里阅读更多关于charsets和FreeMarker的信息 20.如何在模板执行完成后检索模板中计算的值? 首先,确保您的应用程序设计良好:模板应显示数据,几乎不会计算数据。...请注意,由于函数(和方法)和宏只是FreeMarker中的简单变量,因此使用此伪指令的指令。(出于同样的原因,你也可以把或 实例到数据模型调用模板之前,或进入共享变量地图(见 )当您初始化应用程序。)
freemarker思路:鉴于登录系统的不同用户会有不同的用户名,这里不能一味写死为John snow.这时候可以使用freemarker模板,加入一个指令如${user...模板指令 模板可以使用一些基本指令如if指令 Welcome!...表示条件判断的符号 数据类型 freemarker支持的数据类型有: 1.标量:字符串(如"hello")+数字(如123)+布尔值(如true,false)+日期/时间(如May 15,2016...等 自定义指令 自定义指令可以使用 macro 指令来定义。 宏是有一个变量名的模板片段。可以在模板中使用宏作为自定义指令, 这样就能进行重复性的工作。...在 和 之间的内容 (称为 宏定义体) 将会在使用该变量作为指令时执行。可以在FTL标记中通过 @代替#来使用自定义指令。 使用变量名作为指令名。
FreeMarker 是一个用于生成文本输出(如 HTML 网页、电子邮件、配置文件、源代码等)的 Java 府模板引擎。它遵循 MVC 模式,将业务逻辑和表现层分离。...FreeMarker 模板将使用这个属性来渲染页面。 5....数据模型是由键值对组成的,其中键是字符串,而值可以是简单类型(字符串、数字、布尔值等)、序列(列表、数组)或映射(map)。... 宏(Macro) 宏允许你定义可重用的模板片段。 定义宏: Hello, ${user}!... 使用宏: 赋值 在模板中可以使用 assign 指令来赋值变量。
目录 1. freemarker介绍 2. freemarker使用步骤 2.1 在pom.xml引入freeMarker的依赖包 2.2 在springboot中添加freemarker配置...jsp编译成class文件执行,有很好的性能表现 缺点: jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。...二、freemarker 优点: 1、不能编写java代码,可以实现严格的mvc分离 2、性能非常不错 3、对jsp标签支持良好 4、内置大量常用功能,使用非常方便 5、宏定义(类似jsp标签)非常方便...但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。 2、宏定义比jsp tag方便 3、内置大量常用功能。...但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。 2、宏定义比jsp tag方便 3、内置大量常用功能。
特点: 轻量级模版引擎,不需要Servlet环境就可以很轻松的嵌入到应用程序中 能生成各种文本,如html,xml,java,等 入门简单,它是用java编写的,很多语法和java相似 工作原理: ?...指定缺失变量的默认值;一般配置变量输出使用 ?? 判断变量是否存在。一般配合if使用 宏指令 可以理解为java的封装方法,供其他地方使用。...文件提供占位符,java文件提供数据,通过FreeMarker模版引擎生产有数据的页面,文中是将数据放在Map中。...web应用可以用setter/getter 方法 3 知道了FreeMarker语法中字符串的显示特殊字符,截取的操作。以及一些内置方法的使用 4 重点了解FreeMarker的空判断知识点。...,如果变量为空设置默认值。如果不注意空问题,可能会出现黄色页面的提示哦! 5 FreeMarker的宏概念,命名空间,引入文件,给变量赋值,集合的遍历等。
----如果想要使用这套模板生成其他的代码,只需要改变参数的值即可,而不需要改变模板文件。...> 存在用户 用户不存在3、默认值FreeMarker 对变量的空值校验是很严格的,如果模板中某个对象为空,FreeMarker 将会报错而导致模板生成中断。...为了防止这个问题,建议给可能为空的参数都设置默认值。使用 表达式!默认值 的语法,示例代码如下:${user!"用户为空"}上述代码中,如果 user 对象为空,则会输出 “用户为空” 字符串。...5、宏定义学过 C 语言和 C++ 的同学应该对 “宏” 这个词并不陌生。可以把 “宏” 理解为一个预定义的模板片段。支持给宏传入变量,来复用模板片段。其实类似于前端开发中组件复用的思想。...在 FreeMarker 中,使用 macro 指令来定义宏。
1、插值 在上面的 Demo 中,已经给大家演示了差值的基本语法( ${xxx} )。...> 存在用户 用户不存在 3、默认值 FreeMarker 对变量的空值校验是很严格的,如果模板中某个对象为空,FreeMarker 将会报错而导致模板生成中断。...为了防止这个问题,建议给可能为空的参数都设置默认值。使用 表达式!默认值 的语法,示例代码如下: ${user!"...5、宏定义 学过 C 语言和 C++ 的同学应该对 “宏” 这个词并不陌生。可以把 “宏” 理解为一个预定义的模板片段。支持给宏传入变量,来复用模板片段。 其实类似于前端开发中组件复用的思想。...在 FreeMarker 中,使用 macro 指令来定义宏。
,即FreeMarker模板语言,比如:myweb.html.ftl就是一个FreeMarker模板文件,模板文件由4个核心部分组成: 文本:固定的内容,会按原样输出 插值:使用${...}... 语法概览 变量插入 使用${...}来插入变量或表达式的值 ${variableName} 控制结构 使用、和 ${greeting} 循环遍历 使用遍历集合 ${item} 宏定义类 使用标签定义一个宏 <#...2、import指令 使用import引入其他模板中的宏 错误处理 FreeMarker... 2、默认值:使用!符号提供默认值 ${nonExistentVariable!"
还是HTTP 不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP, 或Java等 目前企业中主要使用freemarker做静态页面或页面展示 选择freemarker的原因: 性能: 就性能而言...,包括原始的和非原始的指数 获取数组的长度 宏定义: 宏调用可以通过位置或名称进行参数传递 宏的参数可以设定默认值,在调用宏时如果没有指定该参数,则使用默认值代替 通过 body... 可以支持宏的嵌套 通过文本表达的 “宏的名称” 来直接调用某个宏 宏允许先使用再定义 宏可以定义局部变量 命名空间: 使用多个名称空间的变数....这个在建立 “宏库” 内置与Java语言无关的字符串,列表,Map的操作方法 能提示模版中的拼写错误以及其他错误 当访问一个不存在的变量时,freemarker在执行模版时会报错 通过配置,可以指定freemarker...从容器中确定HttpMessageConverters值。可以自己将定制配置的HttpMessageConverter放在容器中即可配置。
猫头虎 分享:如何在服务器中Ping特定的端口号? 网络调试的实用技巧,学会这些工具,你将成为运维与开发中的“Ping”王!...在日常开发和运维中,我们经常需要检查目标主机上的某个端口是否开启,并确定网络连通性。...使用 Telnet Ping 端口 Telnet 是检查端口连通性的经典工具,虽然简单,但功能强大。...使用 nmap Ping 端口 Nmap 是一款专业的网络扫描工具,适合批量测试。...默认扫描速率较低,可使用 -T4 或 -T5 提高速度,但可能会被目标主机识别为攻击行为。----
FreeMarker最初设计是用来在MVC模式的Web开发中生成HTML页面的,所以没有绑定Servlet或任意Web相关的东西上,所以它可以运行在非Web应用环境中。...用于判断值是否是null,如果为null是不执行的。如果不判null直接使用${}打印,会报模板错误,效果如下: ?...宏 宏:是一个变量名的代码片段,例如: Hello, ${name} 相当于声明了一个名称为“...sayhi”有一个参数“name”的宏,使用自定义标签“@”调用宏。...=false spring.freemarker.request-context-attribute=request spring.freemarker.suffix=.ftl 配置项 类型 默认值 建议值
字符串空值情况处理 5.6 sequence 类型 5.7 hash类型 6 常见指令 6.1 assign 自定义变量指令 6.2 if elseif else 逻辑判断指令 6.3 list遍历指令...-- freemarker 的坐标--> org.freemarker freemarker...req.getRequestDispatcher("template/f01.ftl").forward(req,resp); } } 启动项目,因为已经有插件,所以直接使用...maven进行启动 5 数据类型 5.1 布尔类型 ftl文件里面,直接将Boolean类型的值进行展示,是会出错的,会有上面的提示; 5.2 日期类型 ... 宏,相当于定义一个变量,名称是address--> 我是定义的变量的值 使用宏-->
2.3 Freemarker的基本使用 2.3.1 构造环境 创建maven工程codeutil,并引入响应坐标 使用数据模型中的部分替代输出 FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。...2.4.3 模板的常用标签 在FreeMarker模板中可以包括下面几个特定部分: ${…}:称为interpolations,FreeMarker会在输出时用实际值进行替代。...${person.name}可以取得成员变量为person的name属性 :FTL标记(FreeMarker模板语言标记):类似于HTML标记,为了与HTML标记区分 :宏,自定义标签 注释...如果省略了parse选项值,则该选项值默认是true assign指令 它用于为该模板页面创建或替换一个顶层变量 内置函数 FreeMarker还提供了一些内建函数来转换输出
虽然当前比较推荐使用thymeleaf替代jsp作为java网页开发的模板语言,不过公司推荐使用freemarker,那就顺势而为,速度学一发,然后迅速开始新项目了。...size //2,xionger,xiongda //在中 student?index //以0开始的索引 student.graduated?...join(", ") //xionger.xiongda 类似的build-ins还有很多,请见build-ins 扩展知识 自定义宏 Hello... //使用时直接调用即可 其功能就是把常用的模板做成宏的形式,便于复用。...参考文献 Apache, FreeMarker. Apache FreeMarker Manual[EB/OL]. http://freemarker.org/docs/index.html.
5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Spring Boot 应用程序?...2、使用 JavaConfig 有助于避免使用 XML。 3、避免大量的 Maven 导入和各种版本冲突。 4、提供意见发展方法。 5、通过提供默认值快速开始开发。...从技术角度来讲,只使用 JavaConfig 配置类来配置容器是可行的,但实际上很多人认为将JavaConfig 与 XML 混合匹配是理想的。 (3)类型安全和重构友好。...15、什么是 FreeMarker 模板? FreeMarker 是一个基于 Java 的模板引擎,最初专注于使用 MVC 软件架构进行动态网页生成。...这些端点对于获取有关应用程序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。但是,使用监视器的一个主要缺点或困难是,我们必须单独打开应用程序的知识点以了解其状态或健康状况。
Spring Boot 中的监视器是什么? 6.如何在 Spring Boot 中禁用 Actuator 端点安全性? 7.如何在自定义端口上运行 Spring Boot 应用程序?...使用 JavaConfig 有助于避免使用 XML。 避免大量的 Maven 导入和各种版本冲突。 提供意见发展方法。 通过提供默认值快速开始开发。 没有单独的 Web 服务器需要。...从技术角度来讲,只使用 JavaConfig 配置类来配置容器是可行的,但实际上很多人认为将 JavaConfig 与 XML 混合匹配是理想的。 类型安全和重构友好。...什么是 FreeMarker 模板? FreeMarker 是一个基于 Java 的模板引擎,最初专注于使用 MVC 软件架构进行动态网 页生成。...这些端点对于获取有关应用程 序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。
FreeMarker的特性 FreeMarker是基于Java的模板引擎,最初专注于使用MVC软件体系结构进行动态网页生成。使用Freemarker的主要优点是将表示层和业务层完全分开。...最终,使用freemarker可以将它们组合在一起以给出最终的输出页面。...FreeMarker的功能 强大的模板语言:条件块,迭代,赋值,字符串和算术运算和格式,宏和函数(包括其他模板),默认转义(可选)等。...SpringBoot集成 在pom文件中引入freemarker,当然在SpringBoot中是通过引入SpringBoot已经提供好的starter。...true # Content-Type的值 spring.freemarker.content-type=text/html # 是否将HttpServletRequest中的属性添加到Model中 spring.freemarker.expose-request-attributes
-->格式不会输出 插值(Interpolation) 即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出 FTL指令 FreeMarker指令,和HTML标记类似,名字前加#予以区分...详细介绍 : Template + data-model = output - Apache FreeMarker Manual 1.2 模板的常用标签 在FreeMarker模板中可以包括下面几个特定部分...: 标签 介绍 ${…} 称为interpolations,FreeMarker会在输出时用实际值进行替代。...${person.name} 可以取得成员变量为person的name属性 FTL标记(FreeMarker模板语言标记):类似于HTML标记,为了与HTML标记区分 宏,自定义标签...length} 2、 Freemarker的基本使用 2.1 构造环境 首先是构造环境,我们直接建一个springBoot项目。
使用 Velocity 可以在文本文件里面生成邮件内容,而不是在 Java 代码中拼接字符串。...null,则左值不会被赋值,也就是说会保留以前的值。 ...This is freemarker 3....This is jsp Velocity 引擎会将 list 中的值循环赋给 element 变量,同时会创建一个 $velocityCount 的变量作为计数,从 1 开始,每次循环都会加 1。...#end 五、宏 Velocity 中的宏可以理解为函数定义。 (1)宏的定义: #macro(宏的名称 $参数1 $参数2 ...)
领取专属 10元无门槛券
手把手带您无忧上云