DispatchAction cung cấp một cơ chế cho nhóm một tập các chức năng liên quan trong một hành động đơn lẻ, do đó loại trừ sự cần thiết với tạo ra các hành động riêng biệt cho mỗi chức năng. Trong ví dụ này chúng ta sẽ thấy làm thế nào để nhóm một tập hợp các hành động của người sử dụng có liên quan như thêm người dùng, cập nhật, người sử dụng và xóa người dùng vào một action duy nhất gọi là UserAction.
Các class mở rộng UserAction org.apache.struts.actions.DispatchAction. Lớp này không cung cấp một thực hiện của method execute() như là hành động bình thường. DispatchAction sử dụng các phương pháp execute quản lý ủy thác các yêu cầu với các phương pháp cá nhân dựa trên các thông số yêu cầu gửi đến. Ví dụ nếu các tham số đầu vào được "method=Add", sau đó các method bổ sung sẽ được triệu gọi. Những method này cần phải có chữ ký tương tự như mehod execute.
public class UserAction extends DispatchAction {
private final static String SUCCESS = "success";
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
userForm.setMessage("Inside add user method.");
return mapping.findForward(SUCCESS);
}
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
userForm.setMessage("Inside update user method.");
return mapping.findForward(SUCCESS);
}
public ActionForward delete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm) form;
userForm.setMessage("Inside delete user method.");
return mapping.findForward(SUCCESS);
}
}
Bước tiếp theo là tạo ra một mapping action để xử lý action này. Tên tham số request được xác định bằng cách sử dụng các thuộc tính. Ở đây, tên tham số request là method.
path="/UserAction" scope="session" type="com.ktlt.struts.UserAction">
Bây giờ làm thế nào để gọi một DispatchAction từ jsp. Chúng ta có một form đơn giản với ba nút với thêm, cập nhật và xóa một người sử dụng. Khi mỗi nút được nhấp một phương pháp khác nhau trong UserAction class được gọi.
Kết quả run các bạn sẽ nhìn thấy từ log như sau :
Download Source : Here
DangTrung.
Không có nhận xét nào:
Đăng nhận xét