Validation

JSP 2016. 10. 12. 23:12
반응형

Validation.war


<Controller>

package net.validation.controllers;

import javax.validation.Valid;

import net.validation.form.ValidationForm;

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;

@Controller
@RequestMapping("/validationform.html")
public class ValidationController {

 // Display the form on the get request
 @RequestMapping(method = RequestMethod.GET)
 public String showValidatinForm(ValidationForm validationForm, Model model) {
  model.addAttribute("validationForm", validationForm);
  return "validationform";
 }

 // Process the form.
 @RequestMapping(method = RequestMethod.POST)
 public String processValidatinForm(@Valid ValidationForm validationForm, BindingResult result, Model model) {
  if (result.hasErrors()) {
   return "validationform";
  }
  // Add the saved validationForm to the model
  model.addAttribute("validationForm", validationForm);
  return "validationsuccess";
 }

}

 

<Bean>

package net.validation.form;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
import org.springframework.format.annotation.NumberFormat;
import org.springframework.format.annotation.NumberFormat.Style;

public class ValidationForm {
 
 @NotEmpty
 @Size(min = 1, max = 20)
 private String userName;
 
 @NotNull
 @NumberFormat(style = Style.NUMBER)
 @Min(1)
 @Max(110)
 private Integer age;
 
 @NotEmpty
 @Size(min = 1, max = 10, message = "1~10 이내로 입력해 주세요")
 private String password;

 public void setuserName(String userName) {
  this.userName = userName;
 }

 public String getuserName() {
  return userName;
 }

 public void setAge(Integer age) {
  this.age = age;
 }

 public Integer getAge() {
  return age;
 }

 public void setPassword(String password) {
  this.password = password;
 }

 public String getPassword() {
  return password;
 }
}

 

<Servlet.xml>

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/messages" />

 

<messages.properties>

NotEmpty.validationForm.userName=이름을 입력해 주세요
Size.validationForm.userName=1~20 이내로 입력해 주세요

NotNull.validationForm.age=나이를 입력해 주세요
Min.validationForm.age=1보다 큰 수를 입력해주세요
Max.validationForm.age=110보다 작은 수를 입력해주세요

NotEmpty.validationForm.password=비밀번호를 입력해 주세요

 

<form.jsp>

 <table>
  <tr>
   <td>이름:<font color="red"><form:errors path="userName" /></font></td>
  </tr>
  <tr>
   <td><form:input path="userName" /></td>
  </tr>
  <tr>
   <td>나이:<font color="red"><form:errors path="age" /></font></td>
  </tr>
  <tr>
   <td><form:input path="age" /></td>
  </tr>
  <tr>
   <td>비밀번호:<font color="red"><form:errors path="password" /></font></td>
  </tr>
  <tr>
   <td><form:password path="password" /></td>
  </tr>
  <tr>
   <td><input type="submit" value="Submit" /></td>
  </tr>
 </table>


반응형
Posted by ThinkPad War
,