3.2K Star 8.8K Fork 3.6K

GVPJFinal / JFinal

 / 详情

JFinal getParaToxx系列方法 改进建议

已完成
创建于  
2017-07-04 22:35

对于 getParaToLong、getParaToXxx系列,建议如果出现转换失败建议处理为 Http 400 BadRequest 的异常,而不是404啊。

	private Long toLong(String value, Long defaultValue) {
		try {
			if (value == null || "".equals(value.trim()))
				return defaultValue;
			value = value.trim();
			if (value.startsWith("N") || value.startsWith("n"))
				return -Long.parseLong(value.substring(1));
			return Long.parseLong(value);
		}
		catch (Exception e) {
			throw new ActionException(404, renderFactory.getErrorRender(404),  "Can not parse the parameter \"" + value + "\" to Long value.");
		}
	}

评论 (5)

小鹏 创建了任务

这个提示让我转了几个圈圈,最后去调试看代码,原来这里有个坑。

400 BadRequest 貌似也合理, urlPara 出现错误,也可以认为是 url 不正确, 404 也是可以的,这个问题值得再思考

@JFinal 我的建议是 400,400 我就知道是请求参数的问题,而 404 我得调试代码查找原因(还好 JFinal 的代码层套的没有那么深,不然调试都会花上十分钟)。
这个 404,我尝试了查看前端调用、查看控制台输出、查看JFinalConfig子类的400错误页面的配置、下了断点在getParaToLong()方法之上(这个方法尝试了调试了3次,按F6 StepOver 就 404 了,最后才决定 F5 进去看),前前后后已经浪费了我的 10 多分钟。

JFinal 关闭了任务

10多分钟不错了,有些人一天估计都找不出问题所在。好多菜鸟...

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
12554 rocy 1578914848 840 jfinal 1580661334 439064 zempty 1578923896
Java
1
https://gitee.com/jfinal/jfinal.git
git@gitee.com:jfinal/jfinal.git
jfinal
jfinal
JFinal

搜索帮助

344bd9b3 5694891 D2dac590 5694891