Web页面读取的数据显示不出来,求帮助啊 我从数据库读取的数据,然后封装成json,然后显示到传到js文件,显示到页面上,如果数据全部都是String类型的话就没有问题,能够全部显示,如果有int或者data类型的就不行,求解决方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的json序列化是自己写的吗?贴出来看看!后面那个是date类型吧 不是我自己写的是这个吗 <package name="cenJson" namespace="/cenum" extends="json-default"> <!-- 查询单位 --> <action name="queryCenum" class="cenumAction" method="search"> <result type="json"></result> </action> 在拼JSON之前把int和date类型的.toString()一下再拼接 在JSON中只能传递基本类型的数据吧,像Date、Object都不行! 一切 数据 都可以显示return JSON.fromObject().toString前台 直接 var json = eavl("("+result+")");json.get("vo.attribute"); 我的意思是,为什么全部都是String类型的就可以显示出来,其他类型的就不行。有谁可以解释一下? 你还用了 json 数据传递?如果读取数据库没问题的话,要么是那些属性为空,要么 json 输出插件版本问题,如果不是默认配置,请使用默认 json配置。任意Object及其子类都可以 json 序列化。 还补充一点,你确定你的页面接受的 json数据段是完整的? 我估计是你的js代码问题吧,json数据从数据库拿出来,alert()里面有数据没?就是int date类型的 我直接调用action页面的话,能够弹出一个文本框,里面的数据是没有问题的。页面也能读取,能够显示出条数,但就是不能显示出数据 应该就是你 js问题,你把你的js代码贴上来看看 var json = {"name":"Mike","sex":"女","age":29}; alert(typeof json);var temp = obj2str(json);alert(temp);alert(typeof temp);//下面这个方法是将json对象转换为字符串function obj2str(o){ var r = []; if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\""; if(typeof o =="undefined") return "undefined"; if(typeof o == "object"){ if(o===null) return "null"; else if(!o.sort){ for(var i in o) r.push(i+":"+obj2str(o[i])) r="{"+r.join()+"}" }else{ for(var i =0;i<o.length;i++) r.push(obj2str(o[i])) r="["+r.join()+"]" } return r; } return o.toString();} window.onload=function(){ var singleRecordOper=$("#singleRecordOper").val(); $.toolBarOperHandle({ toolbarName:'ctToolbar' }); $("#recordListManageGrid").buildJqGrid({ gridId:'recordListManageGrid', url:'cenum/queryCenum.action', editurl:'cenum/deleteCenum.action', colNames: [ '枚举项序号','枚举类别名称','枚举项值','基本操作' ], colModel: [ {name: 'ItemOrder', index: 'item_order',width: '100%',align: 'center',key:true}, {name: 'EnumName', index: 'enum_name',width: '100%',align: 'center'}, {name: 'ItemValue', index: 'item_value',width: '100%',align: 'center'}, {name: 'operation', index : 'operation', width : '100%', align: 'center', sortable:false,search:false} ], height:275, pager: 'recordListManagePager', caption:'枚举定义表', toolbarName:'ctToolbar', btnHtml:singleRecordOper }); };jQuery(function($){ $("#viewDialog").dialog({ autoOpen: false, modal: true, bgiframe:true, height:400, width:550, position:'top', resizable: false });});function searchList(){ var param = { "cenum.ItemOrder" : $("#ItemOrder").val() }; var caption='枚举定义表'; $("#recordListManageGrid").setGridParam( { ajaxGridOptions:{type:'post',contentType:'application/x-www-form-urlencoded;charset=gbk'}, postData:param } ).setCaption(caption) .trigger("reloadGrid");}function deleteRowHandle(obj){ $.deleteRowHandle({ gridId:'recordListManageGrid', functionName:'searchList', obj:obj });}function edit(obj){ $("#viewForm :input").removeAttr("readonly"); $("#viewForm #ItemOrder").attr("readonly","readonly"); var index = $(obj).attr('index'); setProperty($('#recordListManageGrid').jqGrid('getRowData', index)); $('#viewDialog') .dialog('option', 'title', '编辑') .dialog('option','buttons',{ "修改":function(){// if($('#viewForm').validate().form()) { $.OkPressed({ dialogId:'viewDialog', type:'edit', formId:'viewForm', gridId:'recordListManageGrid', param:setParam(), editurl:'cenum/editCenum.action', addurl:'cenum/addCenum.action', functionName:'searchList' }); } }, "取消":function(){ $('#viewDialog').dialog('close'); } }) .dialog('open') .bind('dialogclose',function(){ $('#viewForm').resetForm() .find("td:has(:input) span").remove(); }); $("button.ui-state-default").css("float","none"); $("div.ui-dialog-buttonpane").css("text-align","center");};function add(){ $("#viewForm :input").removeAttr("readonly"); $('#viewDialog') .dialog('option', 'title', '添加') .dialog('option','buttons',{ "确定":function(){ if($('#viewForm').validate().form()) { $.OkPressed({ dialogId:'viewDialog', type:'add', formId:'viewForm', gridId:'recordListManageGrid', param:setParam(), editurl:'cenum/editCenum.action', addurl:'cenum/addCenum.action', functionName:'searchList' }); } }, "取消":function(){ $('#viewDialog').dialog('close'); } }) .dialog('open') .bind('dialogclose',function(){ $('#viewForm').resetForm() .find("td:has(:input) span").remove(); }); $("button.ui-state-default").css("float","none"); $("div.ui-dialog-buttonpane").css("text-align","center");}function view(obj){ $.addOrEditOrView({ dialogId:'viewDialog', type:'view', formId:'viewForm', gridId:'recordListManageGrid', obj:obj, functionName:'searchList' //查询函数的名称 }); }function setProperty(obj){ $("#viewForm #ItemOrder").val(obj.ItemOrder); $("#viewForm #EnumName").val(obj.EnumName); $("#viewForm #ItemValue").val(obj.ItemValue);}function setParam(){ return $("#viewForm").serialize();}function clearInput(){ $.resetHandle({ formId:'searchForm' });} 你看看你的obj里面是什么东东?是null? 仔细的检查你的代码,我感觉像是后台你那个地方没有判断。。 我用了JQGRID,有没有可能是因为这个控件不能显示的啊? 我也是用的JQGRID 有时候你的值是NULL的也可能是错误的 可是我的值不是NULL啊,也出错啊 Ajax的url将值传递给servlet,出现空异常 神奇的if语句。 有没有类似ECSHOP之类的java开源产品? 很高兴能来到这里和大家一起学习 问题:为什么在对数据库进行操作时,用第一个IE能操作成功,而再打开第二个IE不能进行操作,但第一个还是可以正常操作。 jbuild 和mysql的问题 如何设置Java中table的列宽!(紧急求救) 高手帮我来看一看 请问一个TOMCAT运行期间的问题 启动tomcat4。0。4时,出现错误提示,帮忙看一下是怎么回事。 jqgrid显示问题 (急)jsp上传压缩文件并到服务器端能自动解压
是这个吗
<package name="cenJson" namespace="/cenum" extends="json-default">
<!-- 查询单位 -->
<action name="queryCenum" class="cenumAction" method="search">
<result type="json"></result>
</action>
前台 直接 var json = eavl("("+result+")");
json.get("vo.attribute");
var json = {"name":"Mike","sex":"女","age":29};
alert(typeof json);
var temp = obj2str(json);
alert(temp);
alert(typeof temp);
//下面这个方法是将json对象转换为字符串
function obj2str(o){
var r = [];
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o =="undefined") return "undefined";
if(typeof o == "object"){
if(o===null) return "null";
else if(!o.sort){
for(var i in o)
r.push(i+":"+obj2str(o[i]))
r="{"+r.join()+"}"
}else{
for(var i =0;i<o.length;i++)
r.push(obj2str(o[i]))
r="["+r.join()+"]"
}
return r;
}
return o.toString();
}
var singleRecordOper=$("#singleRecordOper").val();
$.toolBarOperHandle({
toolbarName:'ctToolbar'
});
$("#recordListManageGrid").buildJqGrid({
gridId:'recordListManageGrid',
url:'cenum/queryCenum.action',
editurl:'cenum/deleteCenum.action',
colNames: [
'枚举项序号','枚举类别名称','枚举项值','基本操作'
],
colModel: [
{name: 'ItemOrder', index: 'item_order',width: '100%',align: 'center',key:true},
{name: 'EnumName', index: 'enum_name',width: '100%',align: 'center'},
{name: 'ItemValue', index: 'item_value',width: '100%',align: 'center'},
{name: 'operation', index : 'operation', width : '100%', align: 'center', sortable:false,search:false}
],
height:275,
pager: 'recordListManagePager',
caption:'枚举定义表',
toolbarName:'ctToolbar',
btnHtml:singleRecordOper
});
};
jQuery(function($){
$("#viewDialog").dialog({
autoOpen: false,
modal: true,
bgiframe:true,
height:400,
width:550,
position:'top',
resizable: false
});
});
function searchList(){
var param = {
"cenum.ItemOrder" : $("#ItemOrder").val()
};
var caption='枚举定义表';
$("#recordListManageGrid").setGridParam(
{
ajaxGridOptions:{type:'post',contentType:'application/x-www-form-urlencoded;charset=gbk'},
postData:param
}
).setCaption(caption)
.trigger("reloadGrid");
}
function deleteRowHandle(obj){
$.deleteRowHandle({
gridId:'recordListManageGrid',
functionName:'searchList',
obj:obj
});
}
function edit(obj){
$("#viewForm :input").removeAttr("readonly");
$("#viewForm #ItemOrder").attr("readonly","readonly");
var index = $(obj).attr('index');
setProperty($('#recordListManageGrid').jqGrid('getRowData', index));
$('#viewDialog')
.dialog('option', 'title', '编辑')
.dialog('option','buttons',{
"修改":function(){
// if($('#viewForm').validate().form())
{
$.OkPressed({
dialogId:'viewDialog',
type:'edit',
formId:'viewForm',
gridId:'recordListManageGrid',
param:setParam(),
editurl:'cenum/editCenum.action',
addurl:'cenum/addCenum.action',
functionName:'searchList'
});
}
},
"取消":function(){
$('#viewDialog').dialog('close');
}
})
.dialog('open')
.bind('dialogclose',function(){
$('#viewForm').resetForm()
.find("td:has(:input) span").remove();
});
$("button.ui-state-default").css("float","none");
$("div.ui-dialog-buttonpane").css("text-align","center");
};
function add(){
$("#viewForm :input").removeAttr("readonly");
$('#viewDialog')
.dialog('option', 'title', '添加')
.dialog('option','buttons',{
"确定":function(){
if($('#viewForm').validate().form())
{
$.OkPressed({
dialogId:'viewDialog',
type:'add',
formId:'viewForm',
gridId:'recordListManageGrid',
param:setParam(),
editurl:'cenum/editCenum.action',
addurl:'cenum/addCenum.action',
functionName:'searchList'
});
}
},
"取消":function(){
$('#viewDialog').dialog('close');
}
})
.dialog('open')
.bind('dialogclose',function(){
$('#viewForm').resetForm()
.find("td:has(:input) span").remove();
});
$("button.ui-state-default").css("float","none");
$("div.ui-dialog-buttonpane").css("text-align","center");
}
function view(obj){
$.addOrEditOrView({
dialogId:'viewDialog',
type:'view',
formId:'viewForm',
gridId:'recordListManageGrid',
obj:obj,
functionName:'searchList' //查询函数的名称
});
}
function setProperty(obj){
$("#viewForm #ItemOrder").val(obj.ItemOrder);
$("#viewForm #EnumName").val(obj.EnumName);
$("#viewForm #ItemValue").val(obj.ItemValue);
}
function setParam(){
return $("#viewForm").serialize();
}
function clearInput(){
$.resetHandle({
formId:'searchForm'
});
}