请教#escape指令嵌套正确的写法

怎么转义两次,我这样写#escape(escape(xxx)),报错呢。

因为layui的radio渲染有BUG,#escape(xxx)一次之后还是显示html还是被浏览器解析了。

2021-02-04_20-35.png

2021-02-04_20-36.png

评论区

JFinal

2021-02-04 20:47

指令嵌套不是这么用的,而是这么用的:
#xxx()
#yyy()
#end

也就是说,指令内部再使用指令

而你的用法:#escape(escape(xxx)) , 其中的内部的 escape(xxx) 是指令 #escape 的参数,千万别搞混

你的用法,内部的 escape(xxx) 用法叫: shared method 调用,可以极其方便去添加一个 escape(...),方法如下:
public class Xxx {
public String escape(String str) {
return MyKit.escape(str);
}
}

最后再配置一下:
engine.addShardMethod(new Xxx());

然后就可以这么用了:
#escape(escape(xxx))

指令与 shared method 的区别一定要搞清楚

天朝子民

2021-02-04 20:51

@JFinal 嗯,如果使用shared method,那直接escape(escape(xxx)),不也可以?

JFinal

2021-02-04 23:17

热门反馈

扫码入社