SpringMVC注解之@JsonView
使用步骤:
第一步:使用接口来声明多个视图
第二步:在值对象的get方法上指定视图
第三步:在Controller方法上指定视图
import java.util.Date;
import javax.validation.constraints.Past;
import com.fasterxml.jackson.annotation.JsonView;
public class User {
public interface UserSimpleView {};
public interface UserDetailView extends UserSimpleView {};
private String id;
private String username;
private String password;
private Date birthday;
@JsonView(UserSimpleView.class)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@JsonView(UserDetailView.class)
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@JsonView(UserSimpleView.class)
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@JsonView(UserSimpleView.class)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
Controller
@GetMapping
@JsonView(User.UserSimpleView.class)
public List<User> query(UserQueryCondition condition,
@PageableDefault(page = 2, size = 17, sort = \"username,asc\") Pageable pageable) {
System.out.println(ReflectionToStringBuilder.toString(condition, ToStringStyle.MULTI_LINE_STYLE));
System.out.println(pageable.getPageSize());
System.out.println(pageable.getPageNumber());
System.out.println(pageable.getSort());
List<User> users = new ArrayList<>();
users.add(new User());
users.add(new User());
users.add(new User());
return users;
}
@GetMapping(\"/{id:\\\\d+}\")
@JsonView(User.UserDetailView.class)
public User getInfo(@ApiParam(\"用户id\") @PathVariable String id) {
// throw new RuntimeException(\"user not exist\");
System.out.println(\"进入getInfo服务\");
User user = new User();
user.setUsername(\"tom\");
return user;
}
结果是根据指定视图输出指定的内容
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



