正在回答 回答被采纳积分+1
2回答
幕布斯2414477
2021-02-09 02:36:25
老师,这个问题我看了好久。参考了https://class.imooc.com/course/qadetail/251079 这个问题。
@PostMapping("/register")
@ResponseBody
public ApiRestResponse register(@RequestParam("username") String username ,
@RequestParam("password") String password) throws ImoocMallException {
if (StringUtils.isEmpty(username)){
return ApiRestResponse.error(ImoocMallExceptionEnum.NEED_USER_NAME);
}
正常进行/register方法时,返回的是json格式的ApiRestResponse对象的三个属性,这个应该和toString方法无关。
但是在GlobalExceptionHandler还没有定义得时候, 以下UserController里的三个异常可以正常抛出,因为他返回的ApiRestResponse对象
@PostMapping("/register")
@ResponseBody
public ApiRestResponse register(@RequestParam("username") String username ,
@RequestParam("password") String password) throws ImoocMallException {
if (StringUtils.isEmpty(username)){
return ApiRestResponse.error(ImoocMallExceptionEnum.NEED_USER_NAME);
}
if (StringUtils.isEmpty(password)){
return ApiRestResponse.error(ImoocMallExceptionEnum.NEED_PASSWORD);
}
//密码长度不能小于八位
if (password.length() < 8){
return ApiRestResponse.error(ImoocMallExceptionEnum.PASSWORD_TOO_SHORT);
}
userService.register(username,password);
return ApiRestResponse.success();
}}
可是在UserServiceImpl里面得抛出的用户名重复异常,就会有timestamp, error ,path这些标签? 这是为什么呢?并且按照按照你视频代码敲下来message一直返回得是空值
@Override
public void register(String username, String password) throws ImoocMallException {
//查询用户名是否存在,不允许重名
User result = userMapper.selectByName(username);
System.out.println("UseService register result :" + result);
if (result != null){
throw new ImoocMallException(ImoocMallExceptionEnum.NAME_EXISTED);
}
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星