[Phần 2] Chúng ta thực hiện chức năng search cho ứng dụng
-Trên trang welcome.jsp, chúng ta bổ sung form search như sau
Lưu ý: action chúng ta là searchLikeLastName, để sau này áp dụng chúng ta nên áp dụng Action sẽ là tên action với chữ action đầu viết hoa+Action ở sau như phần chức năng trên action là login thì tên Action class chúng ta sẽ là LoginAction. Ở đây Action Class của chúng ta sẽ là SearchActionSupport
-Chúng ta thực hiện tạo Action Class, ở đây chúng ta sẽ áp dụng thử với class kế thừa từ Action Support
-Chúng ta cũng chọn Struts2 cho file mới nhưng chọn ActionSupport based Action
-Gõ tên class và package, ở đây sẽ là SearchActionSupport và package sẽ là com.giaima, thực hiện thay đổi class phát sinh như sau
-Khai báo thuộc tính để đón nhận giá trị search từ form
-Khai báo danh sách List để đón nhận kết quả trả về để chúng ta đón nhận kết quả trả về. Chúng ta làm như thế vì bản chất Struts2 đã hỗ trợ dạng backing bean và ngôn ngữ OGNL để chúng ta truy xuất các thành phần trong ActionContext thông qua ValueStack. Trong quá trình xử lý kết quả của Action được lưu trữ trong action context và như chúng tôi đã giảng giải lý thuyết, thành phần interceptor hỗ trợ trích xuất và đưa dữ liệu và valueStack và mapping với Action hay JavaBeans, và Struts2 cung cấp cơ chế cho chúng ta truy cập ValueStack. Do vậy, chúng ta không cần lấy request rồi attribute như Struts1 hay mô hình MVC. Đây là tính tối ưu của Struts2 hơn Struts1 cho người lập trình nhưng nó làm tăng tính phức tạp và xử lý nhiều cho container
-Phát sinh get và set cho 02 thành phần này
-Cài đặt hàm execute xử lý tìm kiếm và gán giá trị cho list, trả về kết quả nhãn “success”
-Tạo class Account để đổ dữ liệu vào list
-Bổ sung hàm getListSearch vào class AcountDAO
-Tạo trang show để trình bày dữ liệu
-Sử dụng taglib của struts2 để truy cập dữ liệu thông qua action và Action Context, không sử dụng bất kỳ EL hay JSTL
Lưu ý: tag iterator của taglib cung cấp chúng ta thuộc tính status, đây là thuộc tính giúp tạo ra đối tượng IteratorStatus để cung cấp hàng loạt util cho chúng ta truy cập trong lúc quá trình duyệt vòng lặp. Một số thuộc tính của Iterator Status như sau
-Chúng ta có thể áp dụng để lấy record đầu tiên, cuối cùng, đếm số thứ tự … mà không sử dụng dài dòng như JSTL 1.1 và EL như trong mô hình MVC
-Chúng ta thực hiện mapping các view với action trong tập tin struts.xml
-Cấu trúc project hiện hành
-Build Project, Deploy và Test đến chức năng search, sau khi login thành công
-Trên trang welcome.jsp, chúng ta bổ sung form search như sau
Lưu ý: action chúng ta là searchLikeLastName, để sau này áp dụng chúng ta nên áp dụng Action sẽ là tên action với chữ action đầu viết hoa+Action ở sau như phần chức năng trên action là login thì tên Action class chúng ta sẽ là LoginAction. Ở đây Action Class của chúng ta sẽ là SearchActionSupport
-Chúng ta thực hiện tạo Action Class, ở đây chúng ta sẽ áp dụng thử với class kế thừa từ Action Support
-Chúng ta cũng chọn Struts2 cho file mới nhưng chọn ActionSupport based Action
-Gõ tên class và package, ở đây sẽ là SearchActionSupport và package sẽ là com.giaima, thực hiện thay đổi class phát sinh như sau
-Khai báo thuộc tính để đón nhận giá trị search từ form
-Khai báo danh sách List để đón nhận kết quả trả về để chúng ta đón nhận kết quả trả về. Chúng ta làm như thế vì bản chất Struts2 đã hỗ trợ dạng backing bean và ngôn ngữ OGNL để chúng ta truy xuất các thành phần trong ActionContext thông qua ValueStack. Trong quá trình xử lý kết quả của Action được lưu trữ trong action context và như chúng tôi đã giảng giải lý thuyết, thành phần interceptor hỗ trợ trích xuất và đưa dữ liệu và valueStack và mapping với Action hay JavaBeans, và Struts2 cung cấp cơ chế cho chúng ta truy cập ValueStack. Do vậy, chúng ta không cần lấy request rồi attribute như Struts1 hay mô hình MVC. Đây là tính tối ưu của Struts2 hơn Struts1 cho người lập trình nhưng nó làm tăng tính phức tạp và xử lý nhiều cho container
-Phát sinh get và set cho 02 thành phần này
-Cài đặt hàm execute xử lý tìm kiếm và gán giá trị cho list, trả về kết quả nhãn “success”
-Tạo class Account để đổ dữ liệu vào list
-Sử dụng taglib của struts2 để truy cập dữ liệu thông qua action và Action Context, không sử dụng bất kỳ EL hay JSTL
Lưu ý: tag iterator của taglib cung cấp chúng ta thuộc tính status, đây là thuộc tính giúp tạo ra đối tượng IteratorStatus để cung cấp hàng loạt util cho chúng ta truy cập trong lúc quá trình duyệt vòng lặp. Một số thuộc tính của Iterator Status như sau
-Chúng ta có thể áp dụng để lấy record đầu tiên, cuối cùng, đếm số thứ tự … mà không sử dụng dài dòng như JSTL 1.1 và EL như trong mô hình MVC
-Chúng ta thực hiện mapping các view với action trong tập tin struts.xml
-Cấu trúc project hiện hành
-Build Project, Deploy và Test đến chức năng search, sau khi login thành công
Login thành công
Search a
View data table
Search Braun
View data table
Database
0 nhận xét:
Post a Comment