问题: springboot返回登录失败

springboot怎么返回登录失败?

UserController

这是原来的UserController里的login:

@RequestMapping("login")
	public class UserController extends BaseController {
    
    

	@Autowired
	private IUserService userService;
	
	@RequestMapping("reg")
	public JsonResult<Void> reg(User user) {
    
    
		userService.reg(user);
		return new JsonResult<>(OK);
	}
	public JsonResult<User> login(String username, String password, HttpSession session) {
    
    
		// 调用业务层方法执行登录
		User data = userService.login(username, password);
		// 将uid、username存入到session中
		session.setAttribute("uid", data.getUid());
		session.setAttribute("username", data.getUsername());
		// 向客户端响应
		return new JsonResult<>(OK, data);
	}

方法:

这是修改后的UserController里的login:

@RequestMapping("login")
	public JsonResult<User> login(String username, String password, HttpSession session) {
    
    
		// 调用业务层方法执行登录
		try {
    
    
			User data = userService.login(username, password);
			session.setAttribute("uid", data.getUid());
			session.setAttribute("username", data.getUsername());
			// 向客户端响应若成功 
			return new JsonResult<>(OK, data);
		}catch (Exception e) {
    
    
			// 向客户端响应若失败 
			return new JsonResult<>(ERROR,"账号或密码错误");
		}
	}

在这里插入图片描述
ERROR是什么?
因为
UserController 继承BaseController 所以在BaseController 里加

protected static final int ERROR= 500;

BaseController

public class BaseController {
    
    
	/**
	 * 响应状态:成功
	 */
	//reg.html "dataType" : "json", "success" : function(json) { if (json.state == 2000) { alert("登录成功!"); } else {alert("登录失败!");}
	protected static final int OK =2000;
	
	protected static final int ERROR= 500;

后台正常后,在前台配置jQuery数据

这是配置之前的:

<script type="text/javascript">
	$("#reg").click(function() {
    
    
		$.ajax({
    
    
			"url" : "/users/login",
			"data" : $("#form-login").serialize(),
			"type" : "POST",
			"dataType" : "json",
			"success" : function(json) {
    
    
				if (json.state == 2000) {
    
    
    				alert("登录成功!");
    			} else {
    
    
    				alert("登录失败!");
    			}
				}
			}
		});
	});

这是配置之后的:

<script type="text/javascript">
	$("#reg").click(function() {
    
    
		$.ajax({
    
    
			"url" : "/users/login",
			"data" : $("#form-login").serialize(),
			"type" : "POST",
			"dataType" : "json",
			"success" : function(json) {
    
    
				if (json.state == 2000) {
    
    
					alert("登录成功!");
				} else {
    
    
					if(json.state== 500){
    
    
						alert(json.message);
					}
				}
			}
		});
	});

在:

alert(json.message);

message是什么?

在这里插入图片描述
处理异常
//创建封装响应结果的JsonResult类中

JsonResult

//处理异常
//创建封装响应结果的JsonResult类:
public class JsonResult<T> {
    
    
	private Integer state;
	private String message;
	private T data;
	//this,get.set方法

这样在login.HTML中获取message

源码

猜你喜欢

转载自blog.csdn.net/weixin_44182157/article/details/109131219