`

FreeMarker template error

阅读更多

在使用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'}

 

参考附件

 

 

0
0
分享到:
评论

相关推荐

    freeMarker语法

    4. **模板异常处理(Error Handling)`: FreeMarker允许设置异常处理策略,如在模板错误时返回默认值或抛出异常。 **五、最佳实践** 1. **模板设计原则**: 保持模板简洁,避免过多的逻辑处理,尽可能让数据模型...

    FreeMarker API源代码

    FreeMarker API主要包括`freemarker.template`包,其中包含了核心的模板处理类。如`Configuration`类是FreeMarker的配置对象,它负责加载和管理模板,设置全局属性。`Template`类则代表一个已经解析好的模板,可以...

    freemarker

    Freemarker的核心概念是模板(Template)。模板是纯文本文件,其中包含静态内容和动态占位符。动态占位符以特定语法表示,如`${expression}`或`&lt;#if condition&gt;`,它们会被Freemarker引擎解析并替换为实际值。模板...

    FreeMarker_Manual_zh_CN.rar_freemarker

    7. **模板继承(Template Inheritance)**:FreeMarker的`&lt;#import&gt;`和`&lt;#macro&gt;`指令可以实现模板的继承和重用,创建可复用的代码片段。 8. **国际化(Internationalization)**:FreeMarker支持多语言环境,可以方便...

    freemarker总结

    JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: &lt;#if condition&gt;... &lt;#elseif condition&gt;... &lt;#elseif condition&gt;......

    freemarker-2.3.26-incubating中文手册

    7. **错误和异常处理**:可以使用`&lt;#ftl&gt;`标签的`error_handler`属性自定义错误处理方式,或者使用`&lt;#try&gt;`、`&lt;#catch&gt;`进行异常捕获。 8. **性能优化**:Freemarker允许设置缓存策略,提高模板编译和执行效率。...

    JAVA根据模板生成WORD文件相关材料

    freemarker.log.Logger=error ``` **代码示例** 下面是一个简单的Java代码片段,展示了如何使用Apache POI和FreeMarker生成Word文件: ```java import freemarker.template.Configuration; import freemarker....

    使用freemaker指南

    4. **模板测试**: FreeMarker提供`TemplateTest`类,方便进行单元测试,确保模板正确渲染。 综上所述,FreeMarker是一个强大且灵活的模板引擎,通过分离视图和逻辑,提高了Web应用的开发效率和可维护性。理解和熟练...

    freemark 2.3.19 中文教程

    2. **ModelAndView对象**: 用于将数据模型和视图名称传递给FreeMarker,`ModelAndView(model, "template.ftl")`。 3. **FreeMarkerConfigurer**: 配置FreeMarker,如设置模板路径、编码格式等。 **四、高级特性** ...

    ContractController.java

    freemarker生成PDF, 不产生临时文件 private static Configuration configuration = null; static Template templatePdf= null; static { configuration = new Configuration(); configuration....

    Freemaker_入门+深入+开发指南+学习笔记

    配置好后,你可以创建一个简单的模板文件,如`.ftl`(FreeMarker Template Language),并定义数据模型。 2. **基本语法**:Freemaker使用类似于HTML的语法,通过 `${}` 和 `[]` 符号来访问和展示数据。例如,`${...

    struts2项目性能调优三步曲.txt

    通过创建`freemarker.properties`文件,并设置`template_update_delay`和`struts.freemarker.templatesCache`属性,可以有效提升模板处理效率。 ```properties template_update_delay=60000 struts.freemarker....

    beetl模板语音教学

    **Beetl** (Bee Template Language) 是一种轻量级的模板语言,专为忙碌的开发者设计。其核心理念在于简化模板语言的学习曲线,同时保持强大的功能性和优秀的性能。 **特性总结**: - **简洁性**: 语法基于JavaScript...

    Spring Boot中使用AOP统一处理web层异常的方法

    spring.freemarker.template-loader-path=/WEB-INF/ ``` 这将使得系统在出现错误时跳转到/WEB-INF/error/错误页面中。 结语 本文介绍了在Spring Boot中使用AOP统一处理web层异常的方法。该方法可以使得系统在出现...

    velocity的所有jar包

    其中包含了许多关键组件,如`VelocityContext`(用于存储模板变量)、`Template`(表示模板文件)和`VelocityRuntime`(初始化并管理Velocity环境)。 3. **avalon-logkit-2.1.jar**:Avalon LogKit是Apache软件...

    springMVC 注册登录源码

    在SpringMVC中,常见的视图技术有JSP、Thymeleaf或Freemarker。例如,返回"successPage"会跳转到对应的JSP页面。 5. **验证(Validation)** 在登录注册场景中,我们需要验证用户输入的数据。SpringMVC可以通过JSR...

    struts2中simple主题下&lt;s:fieldError&gt;标签默认样式的移除方法

    首先,需要找到struts2的配置文件struts2-core-2.3.35.jar/template/simple/fielderror.ftl,并将其拷贝到项目的根目录下,并重命名为template.simple。然后,修改拷贝过来的fielderror.ftl文件,将其中的默认样式...

    最新springmvc视频教程

    - 自定义错误页面,通常放置在`WEB-INF/views/error/`目录下。 #### 八、拦截器 1. **拦截器的作用**:可以在请求处理前后进行预处理和后处理。 2. **编写拦截器**: - 实现`HandlerInterceptor`接口。 - `...

    Apache click 中文文档

    response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } ``` **页面未找到:** 当请求的页面不存在时,可以定制一个特定的页面来处理这种情况。 **示例:** ```java public class ...

Global site tag (gtag.js) - Google Analytics