Hướng dẫn Validation cho nhiều đối tượng trong Spring MVC

validation trong spring mvc

Như tôi đã có một bài hướng dẫn chi tiết về cách xử lý Validation trong Spring MVC. Tuy nhiên có bao giờ các bạn đã đặt câu hỏi: “Validation cho nhiều đối tượng trong Spring MVC?” thì sao nhỉ. Cách hiểu và ý nghĩa hoàn toàn tương tự, tuy nhiên cách xử lý có khác, nên tôi quyết định viết bài này hướng dẫn các bạn.

Tôi sẽ sử dụng lại ví dụ của bài Validation trong Spring MVC:

Hướng dẫn Validation trong Spring MVC

Điều kiện tiên quyết:

Các bạn sẽ đọc bài hướng dẫn trên để chuẩn bị, sau khi đã tạo được bài tôi share link trên, các bạn tạo thêm một đối tượng User như sau:

package entities;

public class User {
	private int id;
	private String username;
	private String password;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
}

form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Form Đăng ký</title>
</head>
<body>
	<h3>Form Đăng ký</h3>
	<form action="${pageContext.request.contextPath }/form" method="post">
		Name: <input type="text" name="name" value="" /><br /><br />
		<form:errors path="subscriber.name" cssStyle="color:red;display:block"></form:errors>
		Email: <input type="text" name="email" value="" /><br /><br />
		<form:errors path="subscriber.email" cssStyle="color:red;display:block"></form:errors>
		
		Age : <input type="text" name="age" value="" /><br /><br />
		<form:errors path="subscriber.age" cssStyle="color:red;display:block"></form:errors>
		
		Phone : <input type="text" name="phone" value="" /><br /><br />
		<form:errors path="subscriber.phone" cssStyle="color:red;display:block"></form:errors>
		
		<input type="submit" name="submit" value="Đăng ký" /><br /><br />
	</form>
	<hr> <hr> <br />
	<h3>Form Đăng nhập</h3>
	<form action="${pageContext.request.contextPath }/form" method="post">
		Username: <input type="text" name="username" value="" /><br /><br />
		<form:errors path="user.username" cssStyle="color:red;display:block"></form:errors>
		Password: <input type="password" name="password" value="" /><br /><br />
		<form:errors path="user.password" cssStyle="color:red;display:block"></form:errors>
		<input type="submit" name="submit" value="Đăng nhập" /><br /><br />
	</form>
</body>
</html>

FormController.java

package controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import entities.Subscriber;
import entities.User;

@Controller
public class FormController {
	
	@RequestMapping(value="form", method=RequestMethod.POST)
    public String submitForm(@Valid @ModelAttribute("subscriber") Subscriber subscriber , BindingResult resultSubscriber,@Valid @ModelAttribute("user") User user, BindingResult resultUser) {
        if(resultSubscriber.hasErrors() || resultUser.hasErrors()) {
            return "form";
        }
        return "form";
    }
	
	@RequestMapping(value="form", method=RequestMethod.GET)
    public String submitForm() {
        return "form";
    }
}

Update User.java

package entities;

import org.hibernate.validator.constraints.NotEmpty;

public class User {
	private int id;
	@NotEmpty(message="Username không được rỗng")
	private String username;
	@NotEmpty(message="Password không được rỗng")
	private String password;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
}

 

00

1 thought on “Hướng dẫn Validation cho nhiều đối tượng trong Spring MVC

Leave a Reply

Your email address will not be published. Required fields are marked *