ajax Validation trong Struts 2



Struts 2 cung cấp sự hỗ trợ cho AJAX Validation. Trong trường hợp này, page sẽ không refresh hoặc reload, vì thế điều này làm tăng hiệu suất. Nó được thực hiện ngầm định bởi sử dụng JavaScript, ví dụ: được sử dụng cho trình Validation ở Client-Side.

Để sử dụng AJAX Validation, bạn cần thêm dojo plugin trong project của bạn.

Giới thiệu jsonValidation Interceptor

AJAX Validation được thực hiện bởi jsonValidation Interceptor. Nó không được tìm thấy trong default stack, vì thế bạn cần định nghĩa nó một cách tường minh. Chính nó không thực hiện bất cứ trình validation nào, và đó là tại sao nó phải được sử dụng với Validation Interceptor. Nó được tìm thấy trong jsonValidationWorkflowStack, mà bao gồm jsonValidation, validation và workflow interceptor và basicstack.

Các bước để thực hiện AJAX Validation

  • Tạo form để lấy input từ người dùng.

  • Kế thừa lớp ActionSupport trong action của bạn.

  • Định nghĩa validation trong validation.xml file.

  • Định nghĩa result name cho thông điệp lỗi và đăng ký jsonValidationWorkflowStack trong struts.xml file.

Ví dụ để thực hiện AJAX Validation

Trong ví dụ này, chúng ta tạo 4 page, như sau:

Tạo index.jsp

Cho input từ người dùng. Nó nhận name, password, và email id từ người dùng.

<%@ taglib  uri="/struts-tags" prefix="s"%>
<%@ taglib uri="/struts-dojo-tags" prefix="d"%>





Registration Form.............







Tạo lớp action

:

Lớp này kế thừa lớp ActionSupport và ghi đè phương thức validate.

RegisterAction.java

package mypack;import com.opensymphony.xwork2.ActionSupport;public class Register extends ActionSupport{
private String name,password,email;//Phuong thuc setter va getterpublic String execute(){
	return "success";
}
}

Tạo validation file

Tại đây chúng ta đang sử dụng bundled validator để thực hiện trình validation.

Register-validation.xml


  
	
 		
	
	
	Name khong duoc de trong
	
	
  		
	
	
	Email ID khong duoc de trong
	
	
	Xin nhap mot email id hop le
	
	
  		
	
	
	Password khong duoc de trong
	
	
	5
	10
	Password khong the it hon 5 hoac dai hon 10
	
  		
	
  		
  
  		
 	

Tạo struts.xml

xml file định nghĩa một result bởi tên đã nhập, và một interceptor là jsonValidatorWorkflowStack.




/welcome.jsp
/

       
 

Tạo các thành phần view

JSP file đơn giản này hiển thị thông tin về người dùng.

welcome.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>Welcome,