springMVC 3.2 배경 검증 실현
7162 단어 springMVC
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Spring MVC] [1] 5. 스프링 MVC - 구조 이해핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회 핸들러 어댑터 실행: 핸들러 어댑터를 실행 핸들러 매핑 org.sp...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.