2017-07-14 2 views
0

-ControllerVerwenden @RequestParam für DTO Felder implizit

@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 
} 

Benutzerfelder werden in GET/users Parameter verwendet, um die Liste der Benutzer als Antwort zu filtern. Der aktuelle Code funktioniert, aber ich frage mich, ob es eine bessere Möglichkeit gibt, diese manuelle Definition der Felder im Controller zu vermeiden.

Ich überlegte, HahsMap zu verwenden, um alle Anforderungsparameter abzurufen, aber ich deaktiviere, da ich überprüfen muss, ob der übergebene Parameter gültig ist.

Antwort

0

Verwenden @ResponseBody wie

@ResponseBody 
@RequestMapping(value = "your mapping here", method = RequestMethod.GET) 
public List<User> getUsers() { 

}

und serialisiert Ihre Benutzer Einheit mit Jackson oder Gson Attribute w/e

Mit Gson Sie Ihre Felder wie

@SerializedName("user_id") 
private Integer id; 
serialisieren
Verwandte Themen