Java 从jqGrid接收x-www-form-urlencoded格式的编辑/添加数据时,我需要application/json
我正在尝试将jqGrid链接到Java Rest服务。当我将编辑/添加数据从jqGrid发送到rest以处理DB CRUD操作时,我收到的数据如下:Java 从jqGrid接收x-www-form-urlencoded格式的编辑/添加数据时,我需要application/json,java,jquery,json,jqgrid,Java,Jquery,Json,Jqgrid,我正在尝试将jqGrid链接到Java Rest服务。当我将编辑/添加数据从jqGrid发送到rest以处理DB CRUD操作时,我收到的数据如下: "nume=Alin&prenume=Dan&sefDepartament=Yes&position=position+2&joinYear=2015-08-11&oper=edit&id=2" 我需要以JSON格式接收它。我怎样才能做到这一点 这是我的Java代码: @Path("/update"
"nume=Alin&prenume=Dan&sefDepartament=Yes&position=position+2&joinYear=2015-08-11&oper=edit&id=2"
我需要以JSON格式接收它。我怎样才能做到这一点
这是我的Java代码:
@Path("/update")
public class UpdateDatabase {
@POST
public String updateDatabase(String data){
System.out.println(data);
}
这是我关于服务器连接的jqGrid设置:
grid.jqGrid({
pager: '#pager',
mtype: "POST",
url: "/RestWithDatabaseConnection/rest/fetchData",
editurl:'/RestWithDatabaseConnection/rest/update',
datatype: "json",
请告诉我是否应该添加一些其他信息。要发送JSON格式编码的编辑结果,您应该
内容类型:application/json
JSON.stringify
对发布的数据进行编码inlineEditing
选项,这是jqGrid的选项(与editurl
处于同一级别)
如果使用旧的jqGrid版本,您可以使用jqGrid选项ajaxRowOptions
和serializeRowData
,方式几乎相同:
ajaxRowOptions: { contentType: "application/json" },
serializeRowData: function (postData) {
return JSON.stringify(postData);
}
免费jqGrid支持jqGridInlineSerializeSaveData
事件作为serializeSaveData
或serializeRowData
回调的替代。它在更高级的场景中很有帮助。由于兼容性原因,免费jqGrid也支持选项ajaxRowOptions
和serializeRowData
我建议您考虑使用免费JQGRAD4.12.0或GITHUB的最新源代码。有关主要新功能和错误修复的列表通常在中介绍。不清楚您使用哪种编辑模式(内联编辑、表单编辑或单元格编辑)。根据编辑模式的不同,您必须使用不同的选项将HTTP内容类型设置为
application/json
,并使用json.stringify
格式化数据。此外,了解使用哪个版本的jqGrid以及使用哪个fork可能很重要(,或版本为Hey Oleg的旧jqGrid,谢谢你的回复。我正在使用免费的jqGrid版本4.11.0和内联编辑模式。在这种情况下,我应该如何处理?Oleg,你是最好的!非常感谢。@IvanSt顺便说一句,我的祝贺!你现在有15个以上的声誉点,并且有权对stackoverflow的内容进行投票(每天对任何问题的答案进行大约30次投票)。这是最重要的权利,有助于搜索引擎(甚至谷歌)找到真正有用的信息,而不仅仅是包含“jqGrid”等许多单词的文本。通过投票,你将帮助其他人找到真正好的内容。你可以阅读更多内容。谢谢你提供的信息。我没有意识到这一点。每当我发现信息对我的学习有用时,我一定会投赞成票。
ajaxRowOptions: { contentType: "application/json" },
serializeRowData: function (postData) {
return JSON.stringify(postData);
}