主题:关于自定义tag传递json对象的问题

lailaizhang 2018年03月09日 145

刚刚入手beetl。感觉自定义tag设计比较不错。有利于将一些功能组件化。方便重用。

自己在开发中遇到了问题,自定义标签参数只能传递字符串。不能传递json对象。

 


需求

做一个jqgrid表格控件, 可以按照定义的表格参数显示不同表格数据。


 

代码实现

定义一个jgrid的tag。将表格中model对象进行传递。
1 页面代码

1-1定义json局部变量json.png

1-2传递参数给grid.tag

calltag.png

 

2、grid.tag页面处理

tag.png

 


按照 这个思路 model使用json对象传递,则tag页面中json对象格式破坏了。不能直接使用。

json对象格式变为  a=‘id’格式。具体详见截图:

报错1.png


 

通过反复测试,只能用将json对象定义为字符串就行了。如果有类似的问题的同学,可以借鉴一下。另外哪位大神有更好的方法,请不吝赐教。

将json对象定义修改为字符串类型定义

页面调用.png

页面可以运行:

grid.png

闲大赋 2018年03月09日

问的很详细,这是因为beetl里的json 实际类型是java的Map来完成,并不是js的json,因此,你确实需要转化成json字符串。可以用任何json工具来做到这一点


tag支持任何数据类型,不仅仅是字符串,也可以是Map,其他java对象