模板引擎的问题。

JFinal Template Engine 注释的html块仍然进行解析。不知道是特性还是BUG?

在jfinal_demo的文件WebRoot\index\index.html中增加<!--<h4>#(demand.student)</h4>-->,刷新jfinal_demo的主页在Console中就会出错信息。

修改后的index.html内容:

#@layout()

#define main()

<h1>JFinal Demo 项目首页</h1>

<div class="table_box">

<p>欢迎来到 JFinal极速开发世界!</p>

<br><br><br>

本Demo采用 JFinal Template 作为视图文件。

点击<a href="/blog"><b>此处</b></a>开始试用Demo。

<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>

<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>



<!--<h4>#(demand.student)</h4>-->


</div>

#end


Console输出为:

2017-05-29 22:53:43

[ERROR]-[Thread: qtp510464020-22]-[com.jfinal.core.ActionHandler.handle()]: /

com.jfinal.render.RenderException: com.jfinal.template.TemplateException: "demand" can not be null for accessed by "demand.student"

Template: "/index/index.html". Line: 16


评论区

JFinal

2017-05-29 17:58

麻烦把具体的内容放到贴子中,我在本地测试一下。 应该是没问题的,注释也是被严格测试过的,就连注释所占用的当前行的换行符都是被细致处理过的

leashi

2017-05-30 11:14

@JFinal 更新了反馈内容,增加了具体的描述。如果处理这个现象影响性能,个人觉得当作特性处理也不错。

JFinal

2017-05-30 12:23

@leashi 这个当然是正常的,用 html 注释包住模板引擎指令当然会被输出

如果不希望输出,可以用一下 jfinal template engine 提供的两种注释方法:
1:单行注释:### 这里是被注释的内容
2:多行注释:
#[[
这里是被注释的第一行内容
这里是被注释的第二行内容
]]#

如果仍然希望用 html 注释包含住的指令不被输出,可以用下面这种方式来注释
### <h4>#(demand.student)</h4>

热门反馈

扫码入社