spring

·spring
웹 사이트에서 Validation으로 데이터를 검증하는 작업은 중요한 작업 입니다 하지만 검증자체가 코드가 짧지 않기 때문에 모든 컨트롤러에 직접 작성하게 되면 전체코드가 길어지게 되고 실행 컨트롤러 작업코드를 찾기 어려울 것입니다. 그래서 Validaion코드는 따로 java파일로 만들어 분리해주는게 좋습니다.@Componentpublic class ItemValidation implements Validator { @Override public boolean supports(Class aClass) { return Item.class.isAssignableFrom(aClass); } @Override public void validate(Object o, Err..
·spring
기본적인 Validation에 대해서 마지막글인 V5에 대해 포스팅하겠습니다.이제껏 V4까지는 에러코드를 어떻게 화면에 보여줄지 설명을 햇다면 이번엔 타입오류가 발생했을때 어떻게 처리하면 되는지 설명하는 글이 되겠습니다.@PostMapping("/add")public String addItemV4(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes , Model model) { //검증 로직 if(!StringUtils.hasText(item.getItemName())) { // 상품이름이 없으면 bindingResult.rejectValue("itemName","r..
·spring
Validation V4에서는 V3에서 해당 필드에 에러메세지를 직접 default메세지를 직접 기입한 것을 따로 에러 메세지를 모아놓은 errors.properties파일에 모아두어 불러오는 방법을 소개하려고합니다. resources/errors.propertiesrequired.item.itemName=상품 이름은 필수입니다.range.item.price=가격은 {0} ~ {1} 까지 허용합니다.max.item.quantity=수량은 최대 {0} 까지 허용합니다.totalPriceMin=가격 * 수량의 합은 {0}원 이상이어야 합니다. 현재 값 = {1} application.propertiesspring.messages.basename=errorsV4 - 1@PostMapping("/add")pub..
·spring
Validation V2에 이어 이번에는 오류메세지를 받아오면서 입력받은 값을 유지하는 방법을 소개하려고한다.변화하는건 bindingResult에 field나 globalErrors를 담을 때 인자를 변경하면 된다.기존의 new FieldError는if(!StringUtils.hasText(item.getItemName())) { // 상품이름이 없으면 bindingResult.addError(new FieldError("item","itemName","상품이름은 필수입니다."));}if(item.getPrice() == null || item.getPrice() 1000000){ //상품가격이 1000에서 1000000사이가 아닐경우 bindingResult.addError(new Fiel..
·spring
이전 Validation V1에서는 입력 폼의 서버 검증 방법으로 if조건에서 error를 Map타입 객체에 담아서 Model로 프론트에 문구를 보여준 방식이였다. 이번에는 스프링에서 제공하는 BindingResult를 사용하는 방법을 소개하려고합니다.@PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes , Model model) { //검증 로직 if(!StringUtils.hasText(item.getItemName())) { // 상품이름이 없으면 bindi..
·spring
웹 사이트에서 입력폼을 통해 데이터를 서버로 보내야 할 때 특정조건에 맞춰서 입력해야하는 부분이 존재할 것이다.한 예제로 주문을 넣는 폼이라고 한다면 주문 수량의 경우 숫자만 들어가야한다던지, 최소한 몇 이상의 수량을 작성을 해야한다는 등이다.위와 같은 입력 폼이 있다고 했을때 가장 쉬운 방법으로는 Javascript를 사용하여 입력에 제한을 할 수도있고 저장버튼을 눌렀을 때 입력값들을 체크하여 서버로 전송을 막을수도 있다.하지만 Javascript만으로 클라이언트 검증만 하게 된다면 웹에 대해 조금만 공부한 사람이라면 얼마든지 취약점을 뚫을수 있고 보안에 매우 취약할 것이다. 이를 위해 우리는 서버에서 한번 더 검증(Validation)을 거쳐야한다.  @PostMapping("/add")public ..
noAb
'spring' 카테고리의 글 목록 (2 Page)