FreeMarker template error!
Expression tag is undefined on line 158, column 42 in WEB-INF/user_base/dxs_gov_cn_www/template/zlpt/nbbp/nbbpedit.html.
The problematic instruction:
----------
==> ${tag.lbmc} [on line 158, column 40 in WEB-INF/user_base/dxs_gov_cn_www/template/zlpt/nbbp/nbbpedit.html]
-----------------------------------------------------------
页面代码:
[#list carveETagList as tag]
[#if tag.flbid=='0']
<tr>
<th>${tag.lbmc}:</th>
.... ........ .....
[/if>
[/#list]
-----------------------------------------------------------
原因:
后台调试carveETagList 数据有值,不为空,所以这不是空值造成的异常。
陈琳来把 [ ] 改为<> 就好了,因为此段代码的前面是freemark的标签式用<> 的,同一个页面中不能同时使用< > 和 [] 么 ?
查看FreeMarker_Manual_zh_CN.pdf 目录 4.5 替换(方括号)语法 ,确实有对此语法的说明,
这种替换语法(方括号)和默认语法(尖括号)在一个模板中是相互排斥的。那就是说,
整个模板要么全部使用替换语法,要么全部使用默认语法。如果模板使用了替换语法,那么
如<#if ...>这样的部分就会被算作是静态文本,而不是 FTL 标签了。类似地,如果模板
使用默认语法,那么如[#if ...]这样的也会被算作是静态文本,而不是 FTL 标签。
分享到:
相关推荐
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,与Java后端框架如Spring、Struts等结合紧密。本教程手册基于版本2.3.16,将全面解析其核心概念、语法特性及实际应用。 一、Freemarker基础 1. 模板...
spring.freemarker.template-loader-path=classpath:/templates/ ``` 或 ```yaml spring: freemarker: template-loader-path: classpath:/templates/ ``` 2. **创建Freemarker模板文件** - 在`src/main/...
通过设置`setClassForTemplateLoading`方法,指定了模板文件的加载位置,通常这些模板文件是以`.ftl`(Freemarker Template Language)扩展名存储的。 #### 2. 获取Template对象 在配置好`Configuration`后,接...
4. **代码生成逻辑**:这通常是Java代码的一部分,负责创建数据模型,加载模板,并调用FreeMarker的`Template`类的`process`方法,将数据模型和模板结合,生成最终的代码。 在描述中提到的CSDN博客文章"42193235...
1. 创建自定义指令类:你需要创建一个继承自`freemarker.template.TemplateDirectiveModel`的Java类。这个类将定义你的自定义标签的行为,包括如何处理输入参数,如何处理模板模型数据,以及如何生成输出。 2. 注册...
6. **模板与数据合并**:使用FreeMarker的`Template`类加载模板文件,然后用`process`方法将数据模型应用到模板上,生成最终的Word文档。 7. **POM.xml**:在Maven项目中,`pom.xml`文件是项目的配置文件,用于定义...
模板文件的扩展名通常是`.ftl`(FreeMarker Template Language)。 2. **数据模型**:Freemarker的数据模型是基于Java对象的。它可以处理各种类型的数据,如字符串、数字、日期、列表、地图等。开发者可以通过`...
import freemarker.template.Template; import java.io.*; import java.util.HashMap; import java.util.Map; public class CreateDoc { private Configuration configuration = null; public CreateDoc() ...
- **表达式**: `${expression}` 可以是任何Java表达式,FreeMarker会计算其结果并输出。 - **控制结构**:如 `<#if>...<#else>...<#endif>` 和 `<#foreach>...<#break>...<#continue>`,用于条件判断和循环。 - ...
- `testTemplate.ftl`可能是一个简单的示例模板,包含FTL语法,如`${expression}`用来输出表达式的值,`<#if>`、`<#foreach>`等用于逻辑控制。 4. **数据模型** - 数据模型是Freemarker模板渲染时的数据来源,...
1. **模板语言FTL**: Freemarker使用的模板语言叫做FreeMarker Template Language (FTL),它是一种声明式的、非过程式的语言。FTL文件包含了一系列的指令和表达式,用于生成最终输出。例如,`<#if>`、`<#foreach>`、...
### Freemarker语法完整版知识点详解 #### A. 概念 **1. Scalars(标量)** - **字符串**: 由单引号或双引号括起来的文本。 - **数字**: 直接使用数值。 - **日期**: 通常从数据模型中获取。 - **布尔值**: `...
Freemarker是一个强大的模板引擎,常用于Web应用中的视图层开发,比如Java Web项目。它允许开发者使用简单的模板语言来动态生成HTML或其他文本格式的文档。本手册将帮助你全面理解和熟练运用Freemarker。 1. **...
在这个文件中,你可以使用Freemarker语法来定义文档的结构和内容,比如使用`<#if>`、`<#foreach>`等控制结构,以及`${expression}`来插入变量。 2. **构建数据模型**: 在Java代码中,你需要创建一个Map对象,用于...
- 模板:使用FTL(Freemarker Template Language)编写,包含静态文本和变量/指令。 4. **模板指令** - `#assign`:定义一个局部变量。 - `#macro`:定义宏,可重用的模板片段。 - `#import`:导入其他模板或库...
1. **创建模板**:在Freemarker中,我们需要创建一个`.ftl`(Freemarker Template Language)文件,其中包含静态文本和动态占位符。动态占位符由${}或#{}包裹,用于插入数据模型中的值。例如,`${title}</h1>`会将...
FreeMarker 的模板是用 FreeMarker Template Language (FTL) 编写的,这是一种简单且专门化的语言。模板通常用来决定如何呈现数据,而在模板外部,则关注要展示哪些数据。例如,可以利用 SQL 查询和业务逻辑准备数据...
FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言,用于定义如何将数据模型渲染成可输出的文本。在FTL文件中,你可以插入静态文本、控制结构(如循环和条件语句)以及对数据模型的引用。 在我们...
FreeMarker的模板继承允许创建基模板(base template),子模板可以继承并覆盖基模板的部分内容,从而实现代码重用。`<#import>`指令用于导入其他模板,方便共享变量和宏。 5. **内置函数和操作符** FreeMarker...