<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>
<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>