рд╡рд╕рдВрдд рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдорд╛рдиреНрдпрддрд╛

рдЫрд╡рд┐
рд╣рдо рд╕рднреА рдЕрдХреНрд╕рд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рд╕рд░рд▓ рддрд░реАрдХреЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

@RequestMapping(value = {"/entityName/{entityId}/get"}, method = RequestMethod.GET) @ResponseBody public Entity get(@PathVariable(value = "entityId") Integer entityId) { //    ID } 

рдЖрдиреЗ рд╡рд╛рд▓реА рдЖрдИрдбреА рдХреЛ рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд╕рднреА рдЖрдИрдбреА рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпреВрдпреВрдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрдирд╛рдпрд╛, рд╕рдВрдЧреНрд░рд╣реАрдд, рдЕрдиреБрдХреНрд░рдорд┐рдд, рдЖрджрд┐ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рднреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдХрд░рдирд╛ рд▓рдВрдмрд╛ рдФрд░ рдХрдард┐рди рд╣реИред рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рд╕рддреНрдпрд╛рдкрди рдПрдХ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  @RequestMapping(value = {"/entityName/{entityId}/get"}, method = RequestMethod.GET) @ResponseBody public Entity get(@PathVariable(value = "entityId") Integer entityId) { if(!@dao.validate(entityId)) return some_error; //    ID } 

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд▓рд╕ рд╣реИред рд╕рд░рд▓ рдФрд░ рддреЗрдЬред
рдмрд╛рдХреА рд╕рдм рдмреБрд░рд╛ рд╣реИред рдХреЛрдб рджреЛрд╣рд░рд╛рд╡, рд╕рддреНрдпрд╛рдкрди рд╡рд╕реНрддреБ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрд▓рдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

  @RequestMapping(value = {"/entityName/{entityId}/get"}, method = RequestMethod.GET) @ResponseBody public Entity get(@Validated @PathVariable(value = "entityId") Integer entityId) { //    ID } 

рдпрд╣ рд╕рд░рд▓ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЛ рдмрд╕ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ PathVariable рдХрд╛ рд╕рддреНрдпрд╛рдкрди рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ PathVariable рдХреЛ ModelAttribute рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

 @ModelAttribute private Integer integerAsModelAttribute(@PathVariable("entityId") Integer id) { return id; } 

рдФрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд░реИрдкрд░ рдореЗрдВ рдмрд┐рдирд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рдХреЛрдИ рд╕реЗрдЯрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдбрд┐рдлреЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рд╕рд╛рдзрд╛рд░рдг рдЗрдиреНрдЯрд░реНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕реЗрдЯрд░ рджреЛрдиреЛрдВ рд╣реИрдВред

рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдореЗрдВ рдмрджрд▓реЗрдВ:

 @ModelAttribute private Integer integerAsModelAttribute(@PathVariable("entityId") Optional<Integer> id) { return id.orElse(null); } 

рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдШреЛрд╖рдгрд╛:

 @InitBinder({"entityId"}) protected void initCommissionIdBinder(WebDataBinder binder) { binder.setValidator(validateEntityIdValidator); binder.setBindEmptyMultipartFiles(false); } @RequestMapping(value = {"/entityName/{entityId}/get"}, method = RequestMethod.GET) @ResponseBody public Entity get(@Validated @ModelAttribute(value = "entityId") Integer entityId) { //    ID.   . } 

рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ:

 public class ValidateIntegerValidator implements Validator { @Override public boolean supports(Class<?> aClass) { return Integer.class.equals(aClass); } @Override public void validate(Object o, Errors errors) { if(o instanceof Integer) { Integer integer = (Integer) o; if(!dao.checkId(integer)) { errors.reject("-1", "ERROR"); } } else { errors.reject("-2","WRONG TYPE"); } } } 

рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

Source: https://habr.com/ru/post/hi425001/


All Articles