做个记录
@RequestMapping(value = "/roleEditView.action")
public ModelAndView roleEditView(HttpServletRequest request,@RequestParam("roleId") String roleId ) {
TTspBRolePO rolebo = roleService.queryRoleByRoleId(roleId);
RoleVO roleVo = new RoleVO();
try {
BeanUtils.copyProperties(roleVo, rolebo); // po转换成vo
List<TTspBMenuPO> roleMenus = menuService.queryMenusByRoleId(roleId); .// 查询菜单的集合
List<String> ids = new ArrayList<String>();
for(TTspBMenuPO menu :roleMenus){
ids.add(menu.getMenuId());
}
roleVo.setSelectedMenus(CommaStringUtils.parseList2CommaString(ids, CommaStringUtils.COMMA)); // 将之编程字符串,用,隔开
} catch (Exception e) {
log.error("根据用户获取对应角色列表失败,错误原因为", e);
throw new CommonException("查询用户角色列表失败", e);
}
ModelAndView mav =new ModelAndView("/role/roleEdit");
mav.addObject("role", roleVo);
return mav;
}
页面中的js
<script type="text/javascript">
function beforeSubmit() {
var nodes = $('#tt').tree('getChecked', [ 'checked', 'indeterminate' ]);
var selectedIdArray = new Array();
$.each(nodes, function(index, item) {
selectedIdArray.push(item.id);
});
$('#selectedMenus').val(selectedIdArray.join(',')); // 转成字符串传到后台去,再解析
return true;
}
$(function() {
var onLoadSuccessDEfault = $.fn.tree.defaults.onLoadSuccess;
$('#tt').tree({
onLoadSuccess : function(node, data) {
var menuids = $('#selectedMenus').val();
var menuArray = commaStr2StrArray(menuids); // 转成数组
$.each(menuArray, function(index, item) {
var node = $('#tt').tree('find', item);
if (node.children.length == 0) {
$('#tt').tree('check', node.target);
}
;
});
return onLoadSuccessDEfault.call(node, data);
}
});
});
</pre><pre code_snippet_id="1651484" snippet_file_name="blog_20160418_9_7566908" name="code" class="html">
</pre><pre code_snippet_id="1651484" snippet_file_name="blog_20160418_6_5724528" name="code" class="html">/**
* 逗号分隔字符串转换为数组对象
* @param str
*/
function commaStr2StrArray(commaStr){
<span style="white-space:pre"> </span>if (commaStr != '' && commaStr != undefined){
<span style="white-space:pre"> </span>return commaStr.split(",")
<span style="white-space:pre"> </span>}else{
<span style="white-space:pre"> </span>return new Array();
<span style="white-space:pre"> </span>}
}
</script>
<td><label>菜单权限</label></td>
<td colspan="3">
<ul id="tt"
data-options="url:'${base}/menu/allMenuTree.action',animate:true,checkbox:true"></ul>
</td>
</pre><pre code_snippet_id="1651484" snippet_file_name="blog_20160418_9_7566908" name="code" class="html">
<input type="hidden" id="selectedMenus" name="selectedMenus"
<span style="white-space:pre"> </span>value="${role.selectedMenus}" /> <input type="hidden" id="roleId"
<span style="white-space:pre"> </span>name="roleId" value="${role.roleId}" />