向Servlet提交序列化JSON
我可以成功序列化表单并将其提交到表单中的文本区域,但不知道如何将其发送到我已经创建/定义的Servlet:向Servlet提交序列化JSON,json,servlets,Json,Servlets,我可以成功序列化表单并将其提交到表单中的文本区域,但不知道如何将其发送到我已经创建/定义的Servlet: // Prepare form for Serialize $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) {
// Prepare form for Serialize
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
// Send JSON Data to ResultSet
$(function() {
$('form').submit(function() {
//submitting to textarea "resultset"
//needs to submit to servlet "SftpConnTest" as defined in web.xml
//$('#ResultSet').text(JSON.stringify($('form').serializeObject()));
//?? HOW DO I SEND TO "SftpConnTest" SERVLET instead??
return false;
});
});
假设您使用HTTP POST将其发送到servlet,则可以使用ajax:
$(function() {
$('form').submit(function(evt) {
evt.preventDefault(); // prevent the default form submit behavior
var data = $('form').serializeObject();
$.post(
'/',
data,
function(resData, status, req) {
$('#ResultSet').text(JSON.stringify(resData));
}
);
}
}
如果servlet未映射到web应用程序的根目录,请将$.post函数中的“SftpConnTest”替换为servlet的相对路径。例如,如果servlet映射到/foo/bar/SftpConnTest,那么应该使用“/foo/bar/SftpConnTest”而不是“SftpConnTest”
有关$.post函数的更多信息,请参阅。使用以下命令通过ajax将表单数据发送到服务器:
$.post("path/to/servlet", $("#formId").serializeArray(), function (result) {
// do something
});
顺便说一下:
serializeArray将表单转换为数组,数组可以直接用作jquery ajax请求的数据参数,只有表单中具有name属性的元素才会包含在数据中,有关详细信息,请查看jquery api,这一点非常清楚。您的意思是将数据从JavaScript应用程序发送到Java Servlet?做一个Java Bean怎么样?不,那不会真正起作用,我通过Servlet控制逻辑提交给JavaBean。好吧,我想它可以工作,但我已经有了这样的工作方式。谢谢,谢谢。快到了,但不太管用!此行$'ResultSet'.textJSON.stringifydata;仍然提交到文本区域。我尝试了textJSON.stringifydata;但它没有屈服。SftoConnTest在根目录下定义。我要看看你发来的链接,看看我能不能弄明白。再次感谢。第$'ResultSet'.textJSON.stringifydata行将从servlet获取响应并将其放入文本区域。如果这不是你想做的,我道歉,我想这是你最初的问题。现在到底有什么不起作用?在过去的几周里,我刚刚开始研究servlet的内容,所以我对它记忆犹新。也许我可以帮你更多的忙。非常感谢你的好意和急需的帮助。我确实希望返回一个响应,但是servlet提交给其他bean,然后将成功/失败发送回servlet,我希望将结果发送回ResultSet文本区域。现在发生的事情是,它没有提交到Servlet,它只是将数据直接发送到textarea。这是web.xml SftpConnTest SftpConnTest comm.fxndiag.SftpConnTest这是表格,您可以在web.xml文件中发布1您的servlet代码,2您的元素吗?请检查我的更新答案,我最初编写时漏了一行。