首先说,这个错误出现的可能性有很多种,我遇到的只是其中一种。
环境:jquery + jqGrid
页面代码:
<p>
<table id="UserTypeList"></table>
<div id="UserTypePager"></div>
<script type="text/javascript">
$(function(){
$.post(
'listUserType.action',
{},
function (json){
jQuery("#UserTypeList").jqGrid({
data: json.userTypeList,
datatype: "local",
height: "auto",
rowNum: 10,
rowList: [10,50,100],
colNames:['id', '名称', '权值'],
colModel:[
{name:'id',index:'id', hidden:true},
{name:'type_name',index:'type_name', width:150,formoptions:{elmprefix:"(*)"},editable:true,editrules:{required:true}},
{name:'type_power',index:'type_power', width:150,formoptions:{elmprefix:"(*)"},editable:true,editrules:{required:true}},
],
caption: '用户类型',
pager: "#UserTypePager",
viewrecords: true,
sortname: 'type_name',
sortorder: "asc",
rownumbers: true,
gridview : false,
grouping: false,
editurl:"editUserTypeInfo.action"
});
jQuery("#UserTypeList").jqGrid('navGrid','#UserTypePager',
{view:true}, //options
{jqModal:true,checkOnUpdate:false,savekey: [true,13], navkeys: [true,38,40], checkOnSubmit : false, reloadAfterSubmit:false, closeOnEscape:true, bottominfo:"带有 (*) 的是必填项"}, // edit options
{jqModal:true,checkOnUpdate:false,savekey: [true,13], navkeys: [true,38,40], checkOnSubmit : false, reloadAfterSubmit:false, closeOnEscape:true,bottominfo:"带有 (*) 的是必填项"}, // add options
{reloadAfterSubmit:false,jqModal:false, closeOnEscape:true}, // del options
{closeOnEscape:false}, // search options
{navkeys: [true,38,40], height:250,jqModal:false,closeOnEscape:true} // view options
);
}
);
});
</script>
</p>
server代码:
public String editUserTypeInfo() throws SQLException{
.....
return "jsonres";
}
private String type_name;
private int type_power;
private int id;
private String oper;
[getter/setter省略]
返回的错误就是 HTTP Status 404 - No result defined for ...
定位过程就不说了,直接说结论。
问题就出在server部分的变量类型,将 type_power 与 id 的变量类型修改为 String 就ok了。
问题应该是jgGrid的变量类型处理方面的问题。