我从JSP上传文件并在servlet中处理它并将数据返回给JSP。
上传文件的JSP文件:
$(document).ready(function() {
$(':file').change(function(){
var fileObj = this.files[0];
var form = $('#upload');
var fd = new FormData();
fd.append( 'file', fileObj);
$.ajax({
url: form.attr('action'),
type: form.attr('method'),
data: fd,
processData: false,
contentType: false,
async: false,
}).done(function(data){
alert('ajax complete');
$('#previewForm').append("<div>" + data + "</div>");
$('#ldiv').hide();
}).fail(function() {
alert("error");
$('#ldiv').hide();
});
}
Servlet文件。
由jsp上传的读取文件 假设上传Excel文件。 读取该文件数据并将该数据转换为jsonString。 现在我想发送该字符串作为ajax调用的响应
我需要返回超过1的值
System.out.print("test.xlsx"); //File name
System.out.print(jsonSting); // jsonSting is variable that is data of excel file which convert in json
System.out.print("chintan"); //other parameter.
那么,当ajax调用时,我怎么能在JSP中响应Handel 3??
答案 0 :(得分:1)
参考链接here 在你的jsp页面
import org.json.simple.JSONObject;
JSONObject obj = new JSONObject();
obj.put("fileName", "test.xlsx");
obj.put("jsonSting", jsonSting);
obj.put("name", "chintan");
在你的ajax回复中
var json = $.parseJSON(data);
$('#results').html('Filename name: ' + json.fileName + '<br />jsonSting: ' + json.jsonSting);
答案 1 :(得分:0)
为什么不将响应包装到json样式字符串,因此您可以在json对象中处理ajax调用结果。 在你的情况下,你的jsp可以像这样响应结果 &#34; {&#39;文件名&#39;:&#39; test.xlsx&#39;&#39; jsonString&#39;:&#39; ****&#39;&#39 ; chintan&#39;:&#39; ***&#39;}&#34;
如果你有多个,你也可以在其中的json对象中标记为数组
答案 2 :(得分:0)
ajax中的单个请求只会获得一个响应。您可以创建更多请求,与此相关的优秀解决方案here,
OR
更好的方法是将额外的参数附加到json字符串本身并更改JS中的逻辑,以便在解析json字符串时从excel数据中分别提取这两个值。