#set怎么赋值其他指令的值?

如题,比如k是后台传过来的map

#number(k.number,"#.###")

,怎么把这个值用#set(num=xxx)赋值给num变量? 


评论区

JFinal

2019-10-09 16:42

常用方法:
#set( k[number] = 123)

还可以直接调用 map 的方法:
#( k.put("number", 123), null)

注意:上面第二种方法使用了输出指令,但第二个参数为 null, 是为了让输出指令不输出任何东西,相当于仅仅是一个方法调用:调用 map.put(...)

enjoy 的指令表达式是与 java 直接打通的,所以有方法就可以调用

JFinal

2019-10-09 16:43

map 的赋值在文档中都有:
https://www.jfinal.com/doc/6-4

1055356469

2019-10-09 17:01

@JFinal 我的意思是,怎么把用#number格式化之后的值,赋值给另一个变量,类似
#set(a=#number(1.234567,"#.###")),把#number格式化之后得到的1.234赋值给a,但是指令的括号里是不能有#号的,这样写不行

JFinal

2019-10-09 19:42

@1055356469 不支持这种用法,你可以写个 public String numFormat 方法,然后添加为 engine.addShardMethod(...),用的时候可以这样:
#set( a = numFormat( 1.23, "#.##"))

1055356469

2019-10-10 09:21

@JFinal 好的,感谢

1055356469

2019-10-12 09:33

@JFinal 大佬,还有个问题就是,有没有什么插件能让idea支持写enjoy模板引擎的代码,在html里写代码能有提示,格式化之类的功能,跟写原生html代码一样。

JFinal

2019-10-12 12:05

@1055356469 目前 eclipse 支持这个功能, IDEA 支持还在开发中

enjoy 模板引擎的指令极少,并且与 java 规则保持一致,例如:#for、#if、#switch , 这些指令无论是名称还是用法都与 java 保持一致,学习成本极低

因此,即便没有代码提示功能也易于使用,建议坚持用一到两天,会发现提示功能其实可有可无

提示功能用于 enjoy 的好处,或许就剩一个提升输出时的效率