Thứ Hai, 5 tháng 1, 2009

Tìm hiểu các class trong Struts (Phần 2)

Bước tiếp theo là cho gọi các đối tượng Action cho các URL yêu cầu. Các lớp học Action cung cấp các logic nghiệp vụ ứng dụng cụ thể cần thiết cho xử lý yêu cầu. Thông thường bạn sẽ viết một class Action cho mọi hành động khác nhau trong ứng dụng.

Một Action tốt class là nhỏ, tập trung, và dễ hiểu, nó chỉ đơn thuần là chất keo giữa controller và model. Actions không phải là một nơi tốt cho thực hiện logic business phức tạp. Một action nói chung sẽ gọi một hoặc nhiều phương thức business trong mô hình để có được những công việc thực tế thực hiện.

Ví dụ :

public ActionForward add(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response)
     throws Exception {

     if (log.isDebugEnabled()) {
          log.debug("Entering 'add' method");
     }

     User user = new User();
     user.addRole(new Role(Constants.USER_ROLE));

     UserForm userForm = (UserForm) convert(user);
     updateFormBean(mapping, request, userForm);
     
     checkForRememberMeLogin(request);
     
     return mapping.findForward("edit");
}

Sau khi hành động đã được hoàn tất thành công, về phía trước Controller các yêu cầu cho view thành phần. Quan điểm này thường là một trang JSP. Các yêu cầu JSP được chuyển tiếp như cấu hình trong file cấu hình Struts và bạn đoán nó, có khi chạy trong đối tượng ActionMapping. Những điểm đến được đại diện bởi các đối tượng ActionForward.

Struts cho phép bạn thiết lập nhiều điểm đến cho một hành động duy nhất, đó là hữu ích nếu một hành động có thể có nhiều kết quả. Ví dụ, ghi dữ liệu cho cơ sở dữ liệu có thể thành công hoặc có thể thất bại. Có thể bạn sẽ muốn chuyển tiếp cho các trang JSP khác nhau tùy thuộc vào kết quả.

       name="userForm"  scope="request" input="list" roles="admin" parameter="method"
       unknown="false" validate="false" >
      
      

Các trang view JSP có thể truy cập vào Model trực tiếp, sử dụng hoặc các ngôn ngữ biểu thức (EL), hoặc sử dụng các thư viện tag Struts để lấy dữ liệu từ model. Ví dụ, nếu bạn sử dụng các thẻ trong thư viện Struts tag html cho tạo ra các hình thức HTML, các thẻ tự động sẽ cư trú trong các trường mẫu với các giá trị trong ActionForm của bạn.

Trong điều kiện mở rộng, đây là cách xử lý một yêu cầu Struts.

Không có nhận xét nào:

Đăng nhận xét