Thứ Bảy, 10 tháng 8, 2013

Tích hợp Spring với Struts 1


Spring là một framework tuyệt vời, thậm chí một phần của spring là spring MVC cũng thừa sức thực hiện mọi tính năng mà struts cung cấp. Thế thì mắc công gì mà tích hợp, xài luôn spring MVC đi cho rồi. Nhưng thực tế là chúng ta có nhiều dự án đã triển khai là struts rồi. Và sau đó, chúng ta phát hiện ra Spring thật tuyệt vời, chúng ta muốn sử dụng các tính năng quản lý tùy biến hấp dẫn mà Spring đem lại nên chúng ta mới cần tích hợp.

Ở đây mình sẽ trình bày sơ lược cách tích hợp struts 1.3 vào spring 3.2.3

Đầu tiên, bạn cần tìm cách chuyển quyền điều khiển các action từ struts sang cho spring. Bạn sẽ phải định nghĩa một ContextLoaderPlugin trong struts-config.xml


<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
       <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>

Dựa vào cấu hình này, action servlet sẽ tìm được vị trí của application context.

Tiếp theo, bạn khai báo type của các action trong struts-config.xml là DelegatingActionProxy

<action path="/user" type="org.springframework.web.struts.DelegatingActionProxy" name="userForm" scope="request" validate="false" parameter="method">
         <forward name="list" path="/userList.jsp"/>
         <forward name="edit" path="/userForm.jsp"/>
</action>

Cuối cùng, bạn chỉ việc khai báo các bean có id hoặc name tương ứng với path của action trong applicationContext.xml và class là trỏ đến class thực sự của action này.

<bean name="/user" scope="prototype" class="org.example.web.UserAction"/>

scope là prototype có nghĩa là bean này sẽ được tạo ra khi có yêu cầu, chấp nhận tạo bean này nhiều lần trong container.

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

Đăng nhận xét