提交请求的AJAX代码如下:
-
$.ajax({
-
url: "${ctx}/selfhelp/userAttributeAnalysis/userAttributeList",
-
type: "POST",
-
data:{appId:appId,
-
type:type,
-
startDate:startDate,
-
endDate:endDate,
-
deviceType:deviceType,
-
displayType:displayType},
-
dataType: "json",
-
success: paddinglist
-
});
里面data是传的一些参数。
ACTION使用的是SpringMVC的注解方式,接收方法如下:
-
@RequestMapping(value = "/userAttributeList")
-
@ResponseBody
-
public List<UserAttribute> userAttributeList(HttpServletRequest request,
-
int type, String appId, int deviceType, int displayType,
-
Date startDate, Date endDate, ModelMap modelMap) throws Exception {
-
。。。。。。。。
-
}
接收的地方也接收了这些参数,但通过DEBUG看,根本就没到这个方法里,在外层就抛错了。
于是我Debug在DispatcherServlet上,发现在框架自动填充Date类型时,使用的格式是"yyyy-MM-dd HH:mm:ss",是在父类里有以下代码:
-
@InitBinder
-
public void initBinder(ServletRequestDataBinder binder)
-
{
-
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
-
}
但我在WEB上设置的日期,格式是yyyy-MM-dd。
原来如此,那解决办法就显而易见了。可以在ajax里将时间传入时加入时分秒,也可以改initBinder。
阅读(16089) | 评论(2) | 转发(0) |