关于ztree回显问题

遇到这个问题,以为ztree本来以为用ajax 回调2次,ztree会自动加载数据,结果不行,自己想天真了,后来看了一下别人的文档,受到启发,可以用map做

做一个list<map<string,object>>

因此后台再写了一个方法

	@Override
	public List<Map<String,Object>> getModulePListByRole(String id) {
		RolePVO rolePVO = rolePVODao.getRoleVOById(id);
		System.out.println(rolePVO.getModuleId());
		String moduleIds=rolePVO.getModuleId();
		ModulePQuery query = new ModulePQuery();
		List<ModuleP> list = modulePDao.selectByExample(query);
		List<Map<String,Object>> arrayList = new ArrayList();
		if(moduleIds!=null&&!"".equals(moduleIds)){
			String[] split = moduleIds.split(",");
		
		for (ModuleP moduleP : list) {
			Map<String, Object> map = new HashMap<String,Object>();
			map.put("id" ,moduleP.getModuleId());
			map.put("isisParent",moduleP.getIsLeaf()==0?"true":"false");
			map.put("name",moduleP.getName());
			map.put("pId",moduleP.getParentId());
			
			if(split !=null&&split.length>0){
			for (String string : split) {
				if(string.equals(moduleP.getModuleId())){
					map.put("checked",true);
				}
			}
			}else{
				if(moduleIds.equals(moduleP.getModuleId())){
					map.put("checked",true);
				}
			}
			arrayList.add(map);
		}
		}
		return arrayList;
	}

这里我用了我在原来的vo里面填了2个字段,一个是string ModuleId,还有个是string 【】ModuleIds

为什么这么做

因为我VOdaoxml ,配置了一个

<select id="getRoleVOById" parameterType="string" resultType="com.lin.jk.pojo.VO.RolePVO">
SELECT
	r.ROLE_ID,
	NAME,
	REMARK,
	GROUP_CONCAT(
		(
			SELECT
				MODULE_ID
			FROM
				module_p m
			WHERE
				m.MODULE_ID = mp.MODULE_ID
		)
	) AS MODULE_ID
FROM
	role_p r
LEFT JOIN role_module_p mp ON r.ROLE_ID = mp.ROLE_ID WHERE r.ROLE_ID=#{roleId}
GROUP BY
	r.ROLE_ID
</select>
这里配置了.MODULE_ID ,vo能接收数据库传过来的MODULE_ID,这样就能对上面的数据进行处理,

而string 【】ModuleIds为了是接收前端传过来的数据,这里是数组,就直接接收前端传过来的数组,这样就可以减少if语句判断,split生成数组等

只用把vo类在set到pojo里就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值