问题:
controller:
@RestController
public class BrokerCustomerCarController extends BaseController {
@RequestMapping(value = "/get", method = RequestMethod.GET)
public list<Test> getTestList(@RequestParam(value = "startTime") date startTime){
//省略操作
}
}
控制器接收一个date类型的参数“startTime”,
调用时传入字符串"2018-01-01 08:00:01",java并不会像C#能自动转为date类型。直接报错。
解决办法:
写一个baseController,在baseController中添加代码:
public class BaseController {
/**
* 接收string转date
* @author liucx
* @param request
* @param binder
*/
@InitBinder
protected void init(HttpServletRequest request, ServletRequestDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
}
然后把自己的controller继承一下baseController就可以自动拦截请求转换时间类型了。
当然baseController还可以写另外的一些公共操作,不做描述