控制器
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<PaginatedResponse<User>> getAllUsers(
@RequestParam(defaultValue = "") String q,
@RequestParam(defaultValue = "") String[] fields,
@RequestParam(defaultValue = "") String[] sort,
@RequestParam(defaultValue = "50") Integer limit,
@RequestParam(defaultValue = "0") Integer offset,
@RequestParam(defaultValue = "") String userField1,
@RequestParam(defaultValue = "") String userField2,
@RequestParam(defaultValue = "") Boolean userField3,
@RequestParam(defaultValue = "") ZonedDateTime userField4,
@RequestParam(defaultValue = "") String userRoleId5,
@RequestParam(defaultValue = "") Long userRoleId6,
@RequestParam(defaultValue = "") Long userRoleId7
) {
//call to service
}
UserDTO
public class UserDTO {
private String userField1;
private String userField2;
private boolean userField3;
ZonedDateTime userField4;
@JsonProperty("USERFIELD5")
private String userField5;
@JsonProperty("USERFIELD6")
private Long userField6;
@JsonProperty("USERFIELD7")
private Long userField7;
//getters and setters
}
用户字段在GET / users参数中用于过滤响应中的用户列表。当前代码有效,但我想知道是否有更好的方法来避免控制器中字段的手动定义。
我考虑使用HahsMap获取所有请求参数,但我选择退出,因为我需要检查传递的参数是否有效。
答案 0 :(得分:0)
使用@ResponseBody
@ResponseBody
@RequestMapping(value = "your mapping here", method = RequestMethod.GET)
public List<User> getUsers() {
}
并使用Jackson或GSON w / e序列化您的用户实体属性
使用gson,您可以序列化您的字段,如
@SerializedName("user_id")
private Integer id;