首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
enjoy解析问题
macaque
2018-11-08 17:21
"tabBarRedDot_index":3#else2,
这个if else 出来怎么是这个样子呀 , 不能同行写么
项目:
JFinal
评论区
macaque
2018-11-08 17:21
@Jfinal
回复
JFinal
2018-11-08 19:03
注意 #else 后面加个 空格
回复
macaque
2018-11-09 11:21
@JFinal
好的 那走到eles 里的值 是不是就成 " 2"了 会不会多个空格
回复
JFinal
2018-11-09 15:29
@macaque
不会多出空格来,jfinal enjoy 处理过的,紧跟在 #else 后面的一个空格或者换行都会被处理掉,不会成为空格或换行
enjoy 处理过远超常人想象的细节
回复
JFinal
2018-11-09 15:31
你碰到的这个问题,本质是关键字分隔符的问题,例如你在写 java 代码时:
if (...) ... else2
这个 else 与 2 连在一起了,java 编译器只能将你的 else2 当成变量名,而不是关键字 else
回复
JFinal
2018-11-09 15:35
这里补充一下, jfinal enjoy 为了提升用户体验,如果没有必要,是不需要空格的,例如:
#if(..)aaa#else bbb#end
上面的代码 #else 与前面的 aaa ,还有 #end 与前面的 bbb 之间可以不要空格,是因为字符 '#' 可以起到分隔的作用,enjoy 就自动处理好了
而你的用法是 #else 后方多了一个字符 '2', 这种情况没有字符 '#' 作为分隔,enjoy 是无论如何不能帮你处理掉的,因为 #else2 可能是你想保留的一个普通字符串
enjoy 自动处理的情况还包括小括号,例如:
#if(a==b)xxx#end
上面的 xxx 与左边的小括号之间没有空格,是因为小括号也可以作为分隔符起作用,这个与 java 规则是类似的
回复
JFinal
2018-11-09 15:38
不仅有上面的细节处理,如果你有使用空格作为分隔的习惯,enjoy 还会吃掉一个空格不输出,因为 enjoy 知道你这个空格是分隔,而不是为了输出一个空格,例如:
#if(a==1) aaa #end
上面的代码,模板输出以后, aaa 这串字符前后的一个空格都不会输出,当成是分隔符了,如果你想输出一个格,只要留出两个空格就好,其中一个会被当成分隔符,一个当成是普通的空格输出
回复
发送
我要反馈
热门反馈
扫码入社