用ssh+easyui时使用ajax发送数据,收到的数据出现有关问题
用ssh+easyui时使用ajax发送数据,收到的数据出现问题
jsp页面(这个参照官方的例子)
struts action:
JSONUtils类
可以完成数据库插入操作,就是jsp页面收到了success的json数据,但是jsp页面中$('#dlg').dialog('close');$('#dg').datagrid('reload');这两句不执行,我知道是jsp页面收到的响应数据出现了问题,但是始终无法解决,希望各路大神帮我看下
------解决思路----------------------
把private Map<String,Object> dataMap = new HashMap<String, Object>();放到sava函数试试。。
------解决思路----------------------
收到 数据有问题 是 哪里 有问题呢? js控制台 看错误 看了没
既然是ajax ,有没试过 加上error:function() 来看下 具体是什么错误,, 如果是 进入了 success:function 那么就没什么问题
调了之后 有错误 无法解决 可以 把 错误信息贴出
jsp页面(这个参照官方的例子)
function saveUser(){
$('#fm').form('submit',{
url: save.action,
onSubmit: function(){
return $(this).form('validate');
},
success: function(result){
var result = eval('('+result+')');
if (result.success){
$('#dlg').dialog('close'); // close the dialog
$('#dg').datagrid('reload'); // reload the user data
} else {
$.messager.show({
title: 'Error',
msg: result.msg
});
}
}
});
}
struts action:
private Map<String,Object> dataMap = new HashMap<String, Object>();
public String save() throws Exception{
/*Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session sess = sf.openSession();
Transaction tx = sess.beginTransaction();*/
Shop shop = new Shop();
shop.setShopid(1);
shop.setShopname(shopname);
shop.setShoplocation(shoplocation);
shop.setGoodsidlist(goodsidlist);
shop.setShopcid(shopcid);
shop.setShopimage(shopimage);
try{
this.shopService.saveShop(shop);
dataMap.put("success", true);
//inputStream = new ByteArrayInputStream(dataMap.getBytes("utf-8"));
}catch(Exception e){
dataMap.put("msg", "保存失败");
}
JSONUtils.toJson(ServletActionContext.getResponse(), dataMap);
return SUCCESS;
}
JSONUtils类
package com.test.tools;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
public class JSONUtils {
public static void toJson(HttpServletResponse response, Object data)
throws IOException {
Gson gson = new Gson();
String result = gson.toJson(data);
response.setContentType("text/json; charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
}
}
可以完成数据库插入操作,就是jsp页面收到了success的json数据,但是jsp页面中$('#dlg').dialog('close');$('#dg').datagrid('reload');这两句不执行,我知道是jsp页面收到的响应数据出现了问题,但是始终无法解决,希望各路大神帮我看下
------解决思路----------------------
把private Map<String,Object> dataMap = new HashMap<String, Object>();放到sava函数试试。。
------解决思路----------------------
收到 数据有问题 是 哪里 有问题呢? js控制台 看错误 看了没
既然是ajax ,有没试过 加上error:function() 来看下 具体是什么错误,, 如果是 进入了 success:function 那么就没什么问题
调了之后 有错误 无法解决 可以 把 错误信息贴出