Enjoy表达式疑问

#setLocal(k=0)
#for(obj2 : menulist)
    #if(obj2.KMParentID==obj.ID)
      #if(k%5==0 && k>0)
        #("</tr><tr>")
        #setLocal(k++)
      #else
      	#setLocal(k++)
      #end
                <td><input type="checkbox" name="mid" id="mid" class="checkbox" value="#(obj2.ID)" />#(obj2.KMName)</td>
    #end
#end


以上代码中

#setLocal(k++)

会报异常,改成如下代码则正常解决

#setLocal(k=k+1)

看文档中Enjoy的表达式是支持++和--的,望指教。

评论区

JFinal

2019-11-23 10:06

#set、#setLocal、#setGlobal 这三个指令被限定为了只支持 "赋值表达式", 而 k++、k-- 是自增与自减表达式

建议使用 #setLocal(k=k+1) , 或者在别指令中使用,例如:
#(k++, "")

以上输出指令中用到了逗号表达式,其中第一个表达式中就是 k++,不影响输出

JFinal

2019-11-23 10:22

你的这个发现有价值,刚刚 jfinal 4.8 版本已经改进了这个地方,放开了 #set 指令对于自增、自减表达式的使用,代码具体改变在此:
https://gitee.com/jfinal/jfinal/commit/4eccbe9bee347cdd6c32bf07c9d3e7b5f9f43912

热门反馈

扫码入社