티스토리 뷰
Spring MVC 5-6 유효성 체크
Spring MVC 유효성 체크
서버측 유효성 체크 기능
Validator와 Error 인터페이스 지원
Validator : Command 객체의 유효성을 검증할 때 사용
BoardValidator.java |
public class BoardValidator implements Validator { public boolean supports(Class<?> clazz) { return BoardVO.class.isAssignableFrom(clazz); } public void validate(Object target, Errors errors) { BoardVO board = (BoardVO)target; if(board.getTitle() == null || board.getTitle().trim().isEmpty()){ errors.rejectValue("title", "required"); } if(board.getWriter() == null || board.getWriter().trim().isEmpty()){ errors.rejectValue("writer", "required"); } if(board.getContent() == null || board.getContent().length() <= 10){ errors.rejectValue("content", "board.content"); } } } |
ValidationUtils 활용
Errors 인터페이스 이용보다 보다 쉽게 처리 가능
BoardValidator.java |
public class BoardValidator implements Validator { public boolean supports(Class<?> clazz) { return BoardVO.class.isAssignableFrom(clazz); } public void validate(Object target, Errors errors) { BoardVO boardCommand = (BoardVO)target; ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", "required"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "writer", "required"); if(boardCommand.getContent().length() <= 10){ errors.rejectValue("content", "board.content"); } } } |
validator 적용하기
Controller 클래스 내의 메서드에 BindingResult 타입의 파라미터가 추가되어야 함.
AddBoardController.java |
@Controller @RequestMapping("/addBoard.do") public class AddBoardController { @RequestMapping(method=RequestMethod.POST) public String addBoard(@ModelAttribute("board") BoardVO vo, BindingResult rs){ new BoardValidator().validate(vo, result); if(rs.hasErrors()){ return "addBoard.jsp"; } boardService.addBoard(board); return "redirect:getBoardList.do"; } } |
에러 메시지 처리
에러메시지 문자열은 resource에 작성하고 Spring 설정 정보에 messageSource Bean을 등록한다.
applicationContext.xml |
<beans ...> <bean id="errorMessageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>message.messageSource</value> </list> </property> </bean> </beans> |
에러 메시지 처리 – 이어서
에러메시지 형식
message=로그인
message.user.id=아이디
message.user.password=비밀번호
user.id=아이디는 필수 입력항목입니다.
user.password=비밀번호는 필수 입력항목입니다.
board.title=제목은 필수 입력항목입니다.
board.writer=작성자는 필수 입력항목입니다.
board.content=내용은 10글자 이상 작성해주세요.
에러메시지는 다국어 처리할 수 있음
에러 메시지 처리 – 이어서
<form:errors /> 커스텀 태그를 이용해 에러 메시지 출력
addBoard.jsp |
<%@page contentType="text/html; charset=EUC-KR"%> <%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %> ...... <spring:hasBindErrors name="board"/> ...... <tr> <td>제목</td><td><input type="text" name="title"/> <form:errors path="board.title"/></td> </tr> <tr> <td>작성자</td><td><input type="text" name="writer" size="10"/> <form:errors path="board.writer"/></td> </tr> <tr> <td>내용</td><td><textarea name="content" cols="40" rows="10"></textarea> <form:errors path="board.content"/></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="새글 등록"/></td> </tr> ...... |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 컴퓨터사용자이름변경
- 뉴스무료사이트
- 2블럭
- 대전갑천2블럭
- 컴퓨터계정이름변경
- 페이코쿠팡결제
- 윈도우화상키보드
- 노트북화면밝기
- 오블완
- 크목한
- 대전스마트시티
- 원신흥
- 예능무료로보는사이트
- 윈도우가상키보드
- 뉴스무료로보는사이트
- pc화면밝기
- 티스토리챌린지
- payco쿠팡
- 드라마무료로보는사이트
- 윈도우화면밝기
- 쿠팡페이코결제
- 스포츠무료사이트
- 야구무료로보는사이트
- 갑천1블럭
- 예능무료사이트
- 쿠팡페이코
- 스포츠무료로보는사이트
- 페이코쿠팡
- pc사용자이름변경
- 컴퓨터사용자명변경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함