在使用freemarker的过程中经常会见到如下错误:
11 十二月 2015 15:53:09,674 ERROR freemarker.runtime:98 - Error executing FreeMarker template FreeMarker template error: The following has evaluated to null or missing: ==> sex [in template "freemarker3.html" at line 10, column 3] Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??
模板代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>freemarker demo</title> </head> <body> ${username} <br /> ${age}<br /> ${sex} </body> </html>
根本原因: sex没有设置值,所以报错
解决方法:
在未声明的变量后面增加叹号
${sex!}
也可以设置默认值,在叹号后面增加默认值
${sex!'abc'}
参考附件
相关推荐
4. **模板异常处理(Error Handling)`: FreeMarker允许设置异常处理策略,如在模板错误时返回默认值或抛出异常。 **五、最佳实践** 1. **模板设计原则**: 保持模板简洁,避免过多的逻辑处理,尽可能让数据模型...
FreeMarker API主要包括`freemarker.template`包,其中包含了核心的模板处理类。如`Configuration`类是FreeMarker的配置对象,它负责加载和管理模板,设置全局属性。`Template`类则代表一个已经解析好的模板,可以...
Freemarker的核心概念是模板(Template)。模板是纯文本文件,其中包含静态内容和动态占位符。动态占位符以特定语法表示,如`${expression}`或`<#if condition>`,它们会被Freemarker引擎解析并替换为实际值。模板...
7. **模板继承(Template Inheritance)**:FreeMarker的`<#import>`和`<#macro>`指令可以实现模板的继承和重用,创建可复用的代码片段。 8. **国际化(Internationalization)**:FreeMarker支持多语言环境,可以方便...
JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>......
7. **错误和异常处理**:可以使用`<#ftl>`标签的`error_handler`属性自定义错误处理方式,或者使用`<#try>`、`<#catch>`进行异常捕获。 8. **性能优化**:Freemarker允许设置缓存策略,提高模板编译和执行效率。...
freemarker.log.Logger=error ``` **代码示例** 下面是一个简单的Java代码片段,展示了如何使用Apache POI和FreeMarker生成Word文件: ```java import freemarker.template.Configuration; import freemarker....
4. **模板测试**: FreeMarker提供`TemplateTest`类,方便进行单元测试,确保模板正确渲染。 综上所述,FreeMarker是一个强大且灵活的模板引擎,通过分离视图和逻辑,提高了Web应用的开发效率和可维护性。理解和熟练...
2. **ModelAndView对象**: 用于将数据模型和视图名称传递给FreeMarker,`ModelAndView(model, "template.ftl")`。 3. **FreeMarkerConfigurer**: 配置FreeMarker,如设置模板路径、编码格式等。 **四、高级特性** ...
freemarker生成PDF, 不产生临时文件 private static Configuration configuration = null; static Template templatePdf= null; static { configuration = new Configuration(); configuration....
配置好后,你可以创建一个简单的模板文件,如`.ftl`(FreeMarker Template Language),并定义数据模型。 2. **基本语法**:Freemaker使用类似于HTML的语法,通过 `${}` 和 `[]` 符号来访问和展示数据。例如,`${...
通过创建`freemarker.properties`文件,并设置`template_update_delay`和`struts.freemarker.templatesCache`属性,可以有效提升模板处理效率。 ```properties template_update_delay=60000 struts.freemarker....
**Beetl** (Bee Template Language) 是一种轻量级的模板语言,专为忙碌的开发者设计。其核心理念在于简化模板语言的学习曲线,同时保持强大的功能性和优秀的性能。 **特性总结**: - **简洁性**: 语法基于JavaScript...
spring.freemarker.template-loader-path=/WEB-INF/ ``` 这将使得系统在出现错误时跳转到/WEB-INF/error/错误页面中。 结语 本文介绍了在Spring Boot中使用AOP统一处理web层异常的方法。该方法可以使得系统在出现...
其中包含了许多关键组件,如`VelocityContext`(用于存储模板变量)、`Template`(表示模板文件)和`VelocityRuntime`(初始化并管理Velocity环境)。 3. **avalon-logkit-2.1.jar**:Avalon LogKit是Apache软件...
在SpringMVC中,常见的视图技术有JSP、Thymeleaf或Freemarker。例如,返回"successPage"会跳转到对应的JSP页面。 5. **验证(Validation)** 在登录注册场景中,我们需要验证用户输入的数据。SpringMVC可以通过JSR...
首先,需要找到struts2的配置文件struts2-core-2.3.35.jar/template/simple/fielderror.ftl,并将其拷贝到项目的根目录下,并重命名为template.simple。然后,修改拷贝过来的fielderror.ftl文件,将其中的默认样式...
- 自定义错误页面,通常放置在`WEB-INF/views/error/`目录下。 #### 八、拦截器 1. **拦截器的作用**:可以在请求处理前后进行预处理和后处理。 2. **编写拦截器**: - 实现`HandlerInterceptor`接口。 - `...
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } ``` **页面未找到:** 当请求的页面不存在时,可以定制一个特定的页面来处理这种情况。 **示例:** ```java public class ...