freemarker空值的多种处理方法
方法 处理 多种 空值 freemarker
2023-09-11 14:16:42 时间
默认情况下,freemarker的变量必须有值,如果没有被赋值的变量在页面上使用就会抛出异常,出错的信息都会显示在页面上。
解决办法:
方法一、我们可以在页面上使用freemarker变量时 以 ${xxx?if_exists} 来处理空值的情况,或采用默认值的方法避免此类问题。但每个freemarker变量都这样处理确实比较让人心烦,请看以下方法。
方法二、在类路径下 加入 freemarker.properties 文件,里面配置 classic_compatible=true。
方法三、通过freemarker.template.Configuration的 config.setClassicCompatible(true);通过源码我们看到,其实方法二、方法三是思想是一致的,只是实现方法不同而已。如果应用中已经存在了 freemarker.properties 并配置了其他的属性,可以在这里配置,否则推荐使用方法三,毕竟没有每个应用的配置文件实在是都够多了。
方法四、在ftl文件内引入 <!--#setting classic_compatible=true-->。
其他关于在spring中的配置这里就省略。现在的项目中没有用到。
总结:方法四是需要在每个需要这样处理的页面都要引入的,比较麻烦,、还是选择使用 方法二、方法三好了。但是方法二、方法三也不是万能的。例如我在action中定义一个MyBean类的对象为 myBean,MyBean中有Comp属性。在页面上就要 用如下语句使用:${myBean.comp},这里myBean可能为null,comp也可能为null。这时候 就要使用方法一了,${(myBean.comp)!} 或 ${(myBean.comp)?if_exists}。
相关文章
- 代码重构与单元测试——对方法的参数进行重构(五)
- 网络编程 -- RPC实现原理 -- RPC -- 迭代版本V2 -- 本地方法调用 整合 Spring
- RelativeLayout不能居中的解决的方法
- SQL建索引提示:联机索引操作只能在 SQL Server Enterprise Edition 中执行 解决方法
- win10你的设备遇到问题,需要重启的五种解决方法
- Ruby小技巧:处理方法调用中的nil
- map用value值找key的两种方法
- C# 方法简介
- IOS中对图片进行重绘处理的方法总结
- Swift - 创建代理协议实现页面间参数传递和方法调用
- 【java】一些图片印章的处理方法
- 《Effective Debugging:软件和系统调试的66个有效方法》——第4条:从具体问题入手向上追查bug,或从高层程序入手向下追查bug
- Python数据处理Tips机器学习中文数据8种常用处理方法
- Ubuntu 桌面模式下,鼠标右键没有新建文档,的解决方法
- 《构建高可用Linux服务器 第3版》—— 2.2 安装系统时容易发生的错误描述与处理方法
- 江辉老师分享“自然语言处理的通用深度学习方法”
- centos6 yum源失效,yum不可用处理方法及php环境搭建
- PHP面向对象-----魔术方法
- 关于手机端属于框获取焦点调出的输入键盘有前往按钮的方法
- MVC3异常处理的方法
- phpstorm failed to create jvm:error code -6 解决办法 解决方法
- SQL SERVER 日志已满的处理方法 (转)
- 窗宽窗位与其处理方法