JFinal

登录 注册

enjoy解析问题

image.png

"tabBarRedDot_index":3#else2,
这个if else 出来怎么是这个样子呀 , 不能同行写么


评论

  • 11-08 19:03
    注意 #else 后面加个 空格
  • 11-09 11:21
    @JFinal 好的 那走到eles 里的值 是不是就成 " 2"了 会不会多个空格
  • 11-09 15:29
    @macaque 不会多出空格来,jfinal enjoy 处理过的,紧跟在 #else 后面的一个空格或者换行都会被处理掉,不会成为空格或换行

    enjoy 处理过远超常人想象的细节
  • 11-09 15:31
    你碰到的这个问题,本质是关键字分隔符的问题,例如你在写 java 代码时:
    if (...) ... else2
    这个 else 与 2 连在一起了,java 编译器只能将你的 else2 当成变量名,而不是关键字 else
  • 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 规则是类似的
  • 11-09 15:38
    不仅有上面的细节处理,如果你有使用空格作为分隔的习惯,enjoy 还会吃掉一个空格不输出,因为 enjoy 知道你这个空格是分隔,而不是为了输出一个空格,例如:
    #if(a==1) aaa #end

    上面的代码,模板输出以后, aaa 这串字符前后的一个空格都不会输出,当成是分隔符了,如果你想输出一个格,只要留出两个空格就好,其中一个会被当成分隔符,一个当成是普通的空格输出
  • 发送