JFinal与Ajax连用

今天发现一个问题,就是当我使用POST的Ajax请求时,由于我的是使用网页表格,生成的数据有5000多条了,封装过的JSON估计也很长(10条数据的JSON解析过的长度大概是3000行左右),然后我使用了data{json:JSON.stringify(spread.toJSON())},但是在后台调试的时候是null,所以导致我后面全报的是空指针,但是我查10条的数据用这种写法是可以的,当我在后台使用String json = getPara("json");是为空,然后我看到一种方法是:采用

public String readRequstJson(HttpServletRequest request) {

StringBuffer json = new StringBuffer();

String line = null;

try {

BufferedReader reader = request.getReader();

while ((line = reader.readLine()) != null) {

json.append(line);

}


} catch (Exception e) {

e.printStackTrace();

}

return json.toString();

}

发现好像还是不行,org.eclipse.jdi.TimeoutException: Timeout occurred while waiting for packet 4610. occurred while retrieving value.出现这个问题,希望大神帮忙!!

评论区

JFinal

2017-10-11 18:33

先观测控制台输出的 jfinal action report 中的 parameter 一栏中是否有数据,如果没有的话,就要使用下面的代码获取数据:
String jsonString = HttpKit.readData(getRequest());

获取完数据,你可以使用自己喜欢的工具转成各种 java 对象,例如可转成 Map:
Map map = FastJson.getJson().parase(jsonString, Map.class);

Yuengh

2017-10-12 11:06

@JFinal 看到有乱码,有%的,跟我之前用getParam看到的数据不一样

JFinal

2017-10-13 10:33

@Yuengh 发送 post 请求就不会有乱码了,而 get 请求的 url 挂参并不支持中文

Onlyluo

2018-11-02 17:23

@JFinal 我使用了post还是乱码啊!

热门反馈

扫码入社