http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com Custom Validation Struts Bạn định nghĩa trình logic riêng cho Validation bạn (custom validation) Struts triển khai Validateable Interface lớp Action Workflow Interceptorđược sử dụng để lấy thông tin thông điệp lỗi (error message) định nghĩa lớp action Workflow Interceptor Struts Workflow Interceptor kiểm tra xem có hay khơng error Nó khơng thực trình validation Nó áp dụng lớp action triển khai Validateable Interface Tham số mặc định input cho Interceptor để xác định result để triệu hồi cho action field error Workflow Interceptor tìm thấy defaultStack bạn khơng cần xác định cách tường minh Chỉ có tham số định nghĩa cho Workflow Interceptor, là: inputResultName: xác định result name để trả field error action error tìm thấy Theo mặc định thiết lập input Giới thiệu Validatebale Interface Validatebale Interface phải triển khai để thực trình logic cho validation lớp Action Nó chứa phương thức validate() mà phải ghi đè lớp action để định nghĩa trình logic cho validation Cú pháp cho phương thức validate là: public void validate(); Giới thiệu ValidationAware Interface ValidationAware Interface chấp nhận thơng điệp lỗi cấp độ trường cấp độ lớp action Các thông điệp cấp độ trường (field level) giữ Map thông điệp cấp độ lớp Action (action class level) giữ Collection Nó nên triển khai lớp Action để thêm thông điệp lỗi Các phương thức ValidationAware Interface void addFieldError(String fieldName,String errorMessage): thêm thông điệp lỗi cho field cho void addActionError(String errorMessage): Thêm thông điệp lỗi action level cho action http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com void addActionMessage(String message): Thêm thơng điệp action level cho action void setFieldErrors(Map map): Thiết lập collection thông điệp lỗi cho field void setActionErrors(Collection errorMessages): Thiết lập collection thông điệp lỗi cho action void setActionMessages(Collection messages): Thiết lập collection thông điệp cho action boolean hasErrors(): Kiểm tra xem có field error action error boolean hasFieldErrors():Kiểm tra xem có field error boolean hasActionErrors():Kiểm tra xem có action error boolean hasActionMessages(): Kiểm tra xem có thông điệp action level Map getFieldErrors(): Trả tất thông điệp lỗi cấp độ trường Collection getActionErrors():Trả tất thông điệp lỗi cấp độ action Collection getActionMessages():Trả tất thông điệp cấp độ action Ghi chú: Lớp ActionSupport triển khai Validateable ValidationAware interface, kế thừa lớp ActionSupport để định nghĩa trình logic cho validation thông điệp lỗi Các bước để thực Custom Validation Struts Bạn theo bước sau: Tạo form để nhận input từ người dùng Định nghĩa trình logic cho validation lớp action kế thừa lớp ActionSupport ghi đè phương thức validate Định nghĩa result cho thông điệp lỗi struts.xml file http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/struts_2/index.jsp Copyright © vietjack.com Ví dụ để thực Custom Validation Struts Trong ví dụ này, tạo page: Tạo index.jsp Cho input từ người dùng Nó nhận name, password, email id từ người dùng Tạo lớp action : Lớp kế thừa lớp ActionSupport ghi đè phương thức validate RegisterAction.java package com.vietjack; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport{ private String name,password; public void validate() { if(name.length()