模板引擎中如何阻止某个对象值被改变

比如我通过 me.addSharedObject 共享了一个对象 user,那么如何防止user值在模板引擎里被改变,比如通过#set(user=xxx)就轻易改变了shareObject的值,这有时候是很危险的,尤其是权限模块,一不小心改变了就很危险

评论区

JFinal

2019-12-16 17:13

你在正文中的例子是改变不了 user 变量本身的,因为 set 指令操作的对象与 shared object 处在不同的 Scope 空间

如下代码可以改变 user 内部的值
#(user.setName(...))

注意区分 shared object 变量与其他变量的不同用法

Dull

2019-12-16 17:58

但对于#set之后的部分,输出#(user)的值确实是改变了,对于这里其实scope都是相同的,不要在意user是个什么类型,就当作是String,这里说的是怎么防止变量被改变,就像静态常量存在的意义

JFinal

2019-12-16 21:12

@Dull 你改变的是 scope 作用域中的 user , 验证主法是你在另一个页面再次使用 #(user) 时仍然是 shared object 过来的 user

热门反馈

扫码入社