建议向客户端响应JSON格式的字符串,添加jackson-databind依赖项
<dependencies>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
使用通用的JSON响应格式
JsonResult类
public class JsonResult<T> {
private Integer state;
private String message;
private T data;
Getter and Setter
}
UserController类
@GetMapping ("/{id:[0-9]+}/info.do")
public JsonResult<UserVO> info(@PathVariable Long id){
System.out.println("即将查询id = " + id + "的用户的信息...");
UserVO userVO = new UserVO();
userVO.setUsername("s1");
userVO.setPassword("111111");
userVO.setEmail("s1@qq.com");
JsonResult<UserVO> jsonResult = new JsonResult<>();
jsonResult.setState(20000);
jsonResult.setData(userVO);
return jsonResult;
}
定义枚举表示服务器端响应的状态值
JsonResult类
public enum State{
OK(2000),
ERR_USERNAME(40400),
ERR_PASSWORD(40600);
Integer value;
State(Integer value){
this.value = value;
}
public Integer getValue(){
return value;
}
}
UserController类
@RequestMapping("/reg.do")
public JsonResult<Void> reg(UserRegDTO userRegDTO){
System.out.println(userRegDTO);
JsonResult<Void> jsonResult = new JsonResult();
jsonResult.setState(JsonResult.State.OK.getValue());
return jsonResult;
}
优化JsonResult类
JsonResult类新增成功方法和失败方法。
public static JsonResult<Void> ok(){
return ok();
}
public static <T> JsonResult<T> ok(T data){
JsonResult<T> jsonResult = new JsonResult<>();
jsonResult.state = State.OK.getValue();
jsonResult.data = data;
return jsonResult;
}
public static JsonResult<Void> fail(State state,String message){
JsonResult<Void> jsonResult = new JsonResult<>();
jsonResult.state = state.getValue();
jsonResult.message = message;
return jsonResult;
}
UserController类
@RequestMapping("/login.do")
public JsonResult<Void> login(String username, String password){
System.out.println("username = " + username + ", password = " + password);
if ("admin".equals(username)){
if ("111111".equals(password)){
return JsonResult.ok();
}else {
String message = "登录失败,密码错误!";
return JsonResult.fail(ERR_PASSWORD,message);
}
}else {
String message = "登录失败,用户名不存在!";
return JsonResult.fail(ERR_USERNAME,message);
}
}
@RequestMapping("/reg.do")
public JsonResult<Void> reg(UserRegDTO userRegDTO){
System.out.println(userRegDTO);
return JsonResult.ok();
}
@GetMapping ("/{id:[0-9]+}/info.do")
public JsonResult<UserVO> info(@PathVariable Long id){
System.out.println("即将查询id = " + id + "的用户的信息...");
UserVO userVO = new UserVO();
userVO.setUsername("s1");
userVO.setPassword("111111");
userVO.setEmail("s1@qq.com");
return JsonResult.ok(userVO);
}