java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxx
1.jsp文件的方法
$("#assignPermissionBtn").click(function(){
var jsonData = new Array();
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var checkedNodes = treeObj.getCheckedNodes(true); // 获取被选中的节点
$.each(checkedNodes,function(i,n){
jsonData.push({"roleid":"${roleId}","permissionid":n.id});
});
if(checkedNodes.length == 0){
layer.msg("请选择分配许可,至少分配一个许可!", {time:1000, icon:5, shift:6});
}else{
var loadingIndex = -1 ;
$.ajax({
type : "POST",
contentType : 'application/json;charset=utf-8', //设置请求头信息
dataType:"json",
data:JSON.stringify(jsonData),
url : "${CWF_PATH}/role/doAssignPermission.do",
beforeSend : function(){
loadingIndex = layer.msg('正在分配许可...', {icon: 16});
return true ;
},
success : function(result){
layer.close(loadingIndex);
if(result.success){
layer.msg("分配成功", {time:1000, icon:6});
}else{
layer.msg("分配失败", {time:1000, icon:5, shift:6});
}
},
error : function(){
layer.msg("操作失败!", {time:1000, icon:5, shift:6});
}
});
}
});
2.1 java类修改前的方法(list.get(0).getRoleid()取值的时候报错)
2.2java文件修改后 的方法
错误原因
程序走到doAjaxDeleteRole方法利用list.get(0).getRoleid()取得list里的第一个对象的值的时候报错:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to xxx,因为list里存放的不是RolePermission实体对象,而是LinkedHashMap,因此需要json转换。
3 解决方式:从list中取出来的数据需要进行转化成json格式字符串,然后再将该json格式字符串转换成对象。
3.1使用json-lib对其进行转换
pom.xml文件导入依赖
后台循环list代码:
3.2使用fast-json对其进行转换
pom.xml文件导入依赖
java后台取值