springMVC 3.2 배경 검증 실현

7162 단어 springMVC
최근 에 springmvc 에서 배경 검사 기능 의 실현 을 배 웠 습 니 다. 특히 demo 를 써 서 나중에 볼 수 있 도록 주 해 를 사용 하여 설정 합 니 다.
1. jsp 페이지 에 spring 탭 도입
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

2. 데이터 제출 양식 작성
<form:form method="post" action="reg.do" commandName="userBean">
			<table>
				<tr>
					<td>
						UserName:
						<font color="red"> <form:errors path="userName"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:input path="userName"/>
					</td>

				</tr>
				
				<tr>
					<td>
						Age:
						<font color="red"> <form:errors path="age"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:input path="age"/>
					</td>

				</tr>
				
				<tr>
					<td>
						password:
						<font color="red"> <form:errors path="password"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:password path="password"/>
					</td>

				</tr>
				
				<tr>
					<td>
						Confirm Password:
						<font color="red"> <form:errors path="confirmPassword"></form:errors>
						</font>
					</td>

				</tr>
				<tr>
					<td>
						<form:password path="confirmPassword"/>
					</td>

				</tr>
				<tr>
					<td>
						<input type="submit" value="submit">
					</td>

				</tr>

			</table>

		</form:form>

3. 새 폼 대상 (javabean)
package springapp.model;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.format.annotation.NumberFormat;
import org.springframework.format.annotation.NumberFormat.Style;

public class UserBean {

	@NotEmpty
	@Size(min = 1, max = 20)
	private String userName;

	@NumberFormat(style = Style.NUMBER)
	@NotNull(message = "Age must not be blank")
	@Min(value = 1, message = "Age must more then 1")
	@Max(value = 100, message = "Age must less then 100")
	private Integer age;

	@NotEmpty(message = "Password must not be blank.")
	@Size(min = 1, max = 10, message = "Password must between 1 to 10 Characters.")
	private String password;

	@NotEmpty
	private String confirmPassword;

	/** get and set  **/
}

  폼 대상 에 대한 잘못된 정보 알림 을 할 때 나 는 몇 가지 방식 을 채택 했다.userName 의 오류 정 보 는 자원 파일 에 설정 되 어 있 습 니 다 (message. properties). 다음 과 같 습 니 다.
NotEmpty.userBean.userName=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
#       

자원 파일 에 오류 알림 정 보 를 설정 하려 면 spring - servlet. xml 파일 쌍 이 필요 합 니 다. Reloadable ResourceBundleMessageSource 클래스 는 다음 과 같이 등록 합 니 다.
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
		<property name="basename" value="/WEB-INF/message" />
	</bean>

 
 
 Age 와 password 의 알림 정 보 는 UserBean 에 직접 적 혀 있 습 니 다. 예 를 들 어:
	@NumberFormat(style = Style.NUMBER)
	@NotNull(message = "Age must not be blank")
	@Min(value = 1, message = "Age must more then 1")
	@Max(value = 100, message = "Age must less then 100")
	private Integer age;

 
password 와 Confirm password 에 대한 검 사 는 검사 기 에 적 혀 있 습 니 다.... 와 같다
package springapp.action;

import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;

import springapp.model.UserBean;

@Component("regValidation")
public class RegValidation {
	public boolean supports(Class<?> clazz) {
		return UserBean.class.isAssignableFrom(clazz);
	}

	public void validate(Object target, Errors errors) {
		UserBean userBean = (UserBean) target;
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName",
				"NotEmpty.userBean.userName",
				"User Name must not be Empty.");
		String userName = userBean.getUserName();
				if (!(userBean.getPassword()).equals(userBean.getConfirmPassword())) {
			errors.rejectValue("password",
					"matchingPassword.userBean.password",
					"Password and Confirm Password Not match.");
		}

	}
}

 
 
 
5. 폼 을 새로 만 드 는 Action
package springapp.action;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import springapp.model.UserBean;

@Controller
public class UserAction {

	@RequestMapping(value = "reg.do", method = RequestMethod.GET)
	public String init(Model model) {

		UserBean useBean = new UserBean();
		model.addAttribute("userBean", useBean);
		
		return "reg";
	}
	
	@RequestMapping(value="reg.do",method=RequestMethod.POST)
	public String reg(Model model,@Valid UserBean userBean,BindingResult result)
	{
		
		regValidation.validate(userBean, result);
		
		if(result.hasErrors())
		{
			return "reg";
		}
		model.addAttribute("userBean", userBean);
		return "regSuccess";
		
	}
	
	@Autowired
	private RegValidation regValidation;
}


 접근 경로: http://localhost:80/SpringMVCValidation/reg.do

좋은 웹페이지 즐겨찾기