NutzCN Logo
问答 关于nutwlk 中beelt的用法
发布于 2921天前 作者 新手学nutz 4198 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk beetl

0001=[/*com.smartlife.modules.models.sys.Sys_menu@2e090796*/{"id":"5f7c2aec732c4487ba7e8a09a26246dd","parentId":"5f7c2aec732c4487b97e8a09a26246dd","path":"00010001","name":"社区概览","aliasName":"CommunityList","type":"menu","href":"/platform/community/community/index","target":"","icon":"domain","isShow":true,"disabled":false,"permission":"community.list","note":"社区概览","location":1,"hasChildren":false,"opBy":"","opAt":1479262203,"delFlag":false}, /*com.smartlife.modules.models.sys.Sys_menu@272416dc*/{"id":"5f7c2aec232c4487ba7e8a09a26246dd","parentId":"5f7c2aec732c4487b97e8a09a26246dd","path":"00010002","name":"通知历史","aliasName":"CommunityNotice","type":"menu","href":"/platform/property/management/notice","target":"","icon":"domain","isShow":true,"disabled":false,"permission":"community.notice","note":"通知历史","location":1,"hasChildren":false,"opBy":"","opAt":1479262203,"delFlag":false}], 00010001=[/*com.smartlife.modules.models.sys.Sys_menu@33e44d59*

我打印出权限secondMenus,发现是map字符串,而且带注释了类对象,导致我无法转成map对象,有什么办法解决吗

12 回复

你应该去看代码实现,而不是前台模板输出。

@Wizzercn 实在找不到了,后面代码就这样
public void fillMenu(Sys_user user) {
//获取用户菜单
user.setMenus(getMenus(user.getId()));
user.setLoginIp(StringUtil.getRemoteAddr());
//计算左侧菜单
List firstMenus = new ArrayList<>();
Map<String, List> secondMenus = new HashMap<>();
for (Sys_menu menu : user.getMenus()) {
if (menu.getPath().length() > 4) {
List s = secondMenus.get(StringUtil.getParentId(menu.getPath()));
if (s == null) s = new ArrayList<>();
s.add(menu);
secondMenus.put(StringUtil.getParentId(menu.getPath()), s);
} else if (menu.getPath().length() == 4) {
firstMenus.add(menu);
}
}
user.setFirstMenus(firstMenus);
user.setSecondMenus(secondMenus);
if (!Strings.isBlank(user.getCustomMenu())) {
user.setCustomMenus(menuService.query(Cnd.where("id", "in", user.getCustomMenu().split(","))));
}
}

但是模板输出总是带有对象的name注释

不知道你想实现什么功能,该有的功能我都实现好了啊。

@Wizzercn 我想js取出menu,然而从模板里取出来的menu都带有那个对象的注释,导致无法转成js使用的map或者数组对象

你应该调用toJson之类的方法,转为json显示在页面上,这样js才能解析

@wendal 那个字符串中带/*com.smartlife.modules.models.sys.Sys_menu@2e090796*/ 之类的注释文件,调用toJson会报错,字符串不是一个标准的JSON格式

这东西明显是list.toString()得到的结果

传给toJson的是对象/list/map, 怎么会是字符串, 再说, 字符串又怎么会报错

还有办法,就是改pojo基类的toString方法咯

@wendal 找到办法了,使用beetl-json内置工具类,将对象转成json字符串在获取

添加回复
请先登陆
回到顶部