setResolveJsonRequest 如何异常捕获

jfinal 5.0增加了   me.setResolveJsonRequest(true);  功能, 

如果客户端提交过来的非法字符比如:   {"1"}

如何异常捕获处理?

评论区

杜福忠

2022-05-09 11:41

me.setJsonRequestFactory((s, httpServletRequest) -> {
try {
return new JsonRequest(s, httpServletRequest);
}catch (JSONException e){
//这里是拦截的异常 e.getMessage()
throw e;
}
});

fangjunai

2022-05-09 12:14

@杜福忠 谢谢, 我用 Handler .

杜福忠

2022-05-09 14:34

@fangjunai Handler咋处理?提前解析一次?还是覆写ActionHandler?

zzutligang

2022-05-09 15:09

@杜福忠 @fangjunai 还是杜总的解决方法最科学!

fangjunai

2022-05-09 15:44

@杜福忠 之前用Handler 提前解析一次, 后来发现 HttpKit.readData只取一次数据,后来换你刚才那种.

fangjunai

2022-05-09 15:59

@杜福忠 当出现异常时如何 renderJson(Ret.fail())? 拦截器也拦不住.

杜福忠

2022-05-09 16:17

@fangjunai JF支持配置了 me.setErrorJsonContent(500, Okv.of("", "").toJson());

杜福忠

2022-05-09 16:19

@fangjunai https://gitee.com/-/ide/project/jfinal/jfinal/edit/master/-/src/main/java/com/jfinal/render/ErrorRender.java

fangjunai

2022-05-09 16:20

@杜福忠 那是不是所有的500错误多报一样的错误了?

杜福忠

2022-05-09 16:28

@fangjunai 那就自定义提示了,比如:
me.setJsonRequestFactory((s, httpServletRequest) -> {
try {
return new JsonRequest(s, httpServletRequest);
}catch (JSONException e){
throw new ActionException(500, Okv.of("msg", "JSON格式不正确").toJson());
}
});

fangjunai

2022-05-09 16:39

@杜福忠 可以了,谢谢.