jFInal入参的一个问题

我发现,jfinal5.0.0 以及之后的版本中。如下的代码块。会造成请求时, 参数名字和参数内部的字段名字冲突时, 导致无法自动转换的情况。


    private T resolveJson(JsonRequest req) {
		com.alibaba.fastjson.JSONObject jsonObj = req.getJSONObject();
		if (jsonObj == null) {
			return toList(req.getJSONArray());
		}
		
		String paraName = this.getParameterName();
		if (jsonObj.containsKey(paraName)) {
			// 存在与 action 形参名相同的 request 参数则使用其 value 值进行转换
			return jsonObj.getObject(paraName, beanClass);
		} else {
			// 否则使用整个请求中的 json 进行转换
			return jsonObj.toJavaObject(beanClass);
		}
	}


这段代码在BeanGetter类的滴60行开始到第74行结束。 

比如, 我定义一个Color类, 里面有个参数叫 color。 这时候, 如果我的参数名是  Color  color , 此时就没法直接拿到前端传过来的{"color":"黄色"} , 而是转换失败,报错提醒。

评论区

热门反馈

扫码入社