Kieu Trong Khanh: Tổng Quan Về Struts 2 Là Gì, Struts2 Là Gì

      100

- Chúng tôi hướng đến Việc cung ứng những tutorial với kim chỉ nan tương quan cho technology Java, đặc biệt là J2EE/JavaEE- Chúng tôi ko chủ trương cung ứng source code, đoạn phim bên trên web site này chính vì công ty chúng tôi mong ước các bạn làm từng bước một nhằm cảm giác được kiến thức, gọi biết với hiệu quả. Cách tiếp cận của chúng tôi là có tác dụng từng bước bởi hướng dẫn- Hướng tiếp cận của công ty chúng tôi theo phía bộc lộ những triết lý trải qua ví dụ để giúp đỡ tiết kiệm ngân sách thời gian


Bạn đang xem: Kieu Trong Khanh: Tổng Quan Về Struts 2 Là Gì, Struts2 Là Gì

*

Tổng quan liêu về Struts 2 Framework – một Framework cung cấp chế tạo ứng dụng Web áp dụng MVC Pattern cải thiện trường đoản cú Struts 1.x Framework, thi công vận dụng trước tiên vận dụng Struts 2 Framework


Xem thêm:

Tổng quan liêu vềStruts 2 Framework – một Framework hỗ trợ xây dựng ứngdụng Web áp dụng MVC Pattern nâng cấp từ Struts 1.x Framework,xây dựng ứng dụng đầu tiên áp dụng Struts 2 Framework

Mục đích: Chủđề của bài bác này đề cập đến khái niệmtổng quát tháo của Struts 2.x Framework. Chúng tôi sẽ tiếp cậntổng quát khái niệm từng thành phần của Struts dựatrên tổng quát lác mô hình MVC Pattern và nền tảng căn bảncủa Struts1 Framework để họ tiếp cậnFramework này một biện pháp mau lẹ dự trên kiến thứccơ bản mà lại chúng ta đã gồm về Struts 1. Dựa trên kháiniệm này, họ sẽ áp dụng Struts 2 Framework này trong phầnphân tích và thiết kế ứng dụng website cụ thểđể thấy rõ cách thức thiết kế, biện pháp càiđặt ứng dụng cụ thể sử dụngStruts 2 trong việc xây dựng ứng dụng Web

Tổng quan về Struts 2 Framework

Đây là Framework hỗ trợ thiết kế với xây dựng ứng dụng website theo quy mô MVC 2 trải qua việc cung cấp hàng loạt các thư viện cùng tiện ích để hỗ trợ người dùng phát triên ứng dụng Web theo mô hình MVC một phương pháp nhanh lẹ và dễ dàng Struts 2 Framework hỗ trợ việc xây dựng ứng dụng Web theo quy mô MVC2 nhưng đơn giản hóa hơn quy mô Struts 1 Framework như là rút ít gọn tập tin cấu hình tuyệt sử dụng annotation cố gắng thế đến tập tin cấu hình Một số đặc tính cải tiến của Strut2 Framework JavaBeans được sử dụng cố gắng thế Action form với bao gồm phương thức chỉ định để kích hoạt thực thi (mặc định là phương thức execute không có tsi số truyền và kiểu trả về là kiểu String) nhằm tăng khả năng tái sử dụng của các object trong các ứng dụng với những framework khác. Đặc biệt, bọn chúng dễ dàng thuật tiện mang lại testing từng thành phần chức năng và thành phần Sử dụng cả annotation và tập tin cấu hình XML rút gọn Sử dụng ngôn ngữ mới Object Graphic Notation Language (OGNL) cố gắng thế đến EL của JSPhường Sử dụng bộ taglib duy nhất núm đến 4-5 bộ taglib trong Struts 1 Framework cùng JSTL 1.1 trong các JSP. Để mau lẹ tiếp cận Struts2 chúng ta sẽ đối chiếu điểm khác biệt trên Struts1

Struts 1

Struts 2

Sử dụng ActionServlet có tác dụng Controller

Sử dụng FilterDispatcher làm Controller

Dùng HTML form kết hợp với ActionForm object để đón nhận giá bán trị nhập và xử lý validation nếu cần

Các thuộc tính vào Action class (cụ thể là Java class) để đón nhận giá bán trị nhập từ khung với thực hiện xử lý thuộc với validation nếu cần

kích hoạt bắt buộc implement kích hoạt interface

Action class không cần bắt buộc implement Action interface

Duy nhất một instance của Action đón nhận để xử lý mọi request. Cơ chế để đảm bảo xử lý đồng bộ (thread-safe) đòi hỏi phức tạp hơn

Một request sẽ có một instance đón nhận xử lý

Cung cấp rất nhiều taglib tạo cực nhọc khăn cho người dung Khi tiếp cận cùng sử dụng

Cung cấp duy nhất một taglib duy nhất đảm bảo đầy đủ những thành phần hỗ trợ xử lý từ đơn giản đến nâng cấp, kể cả JSTL

Sử dụng EL cùng JSTL

Sử OGNL để xử lý

Dùng cơ chế biên dịch của JSPhường để kết nối những thành phần trong xử lý

Sử dụng ValueStack để được cho phép taglib tróc nã vập giá chỉ trị vào quá trình xử lý

Chia thành module để chuyển đổi làm việc và đòi hỏi kết hợp của switchAction để tạo sự kết hợp giữa những thành phần khi làm cho việc theo nhóm

Sử dụng cơ chế interceptor để đảm bảo tích hợp nhiều thành phần và nâng cấp ứng dụng một phương pháp uyển chuyển linh hoạt, đặc biệt là tích hợp mà lại ko có tác dụng ảnh hưởng những thành phần bao gồm sẵn khi có tác dụng việc theo nhóm


Cơ chế hoạt động tương tự như quy mô MVC của Struts1 Framework nhưng điểm không giống biệt nó là pull-framework nghĩa là dữ liệu được lấy trực tiếp từ action để đưa đến view Controller: FilterDispatcher là servlet Filter bao gồm nhiệm vụ đón nhận request cùng dựa bên trên cấu hình (bao gồm thể là xml xuất xắc annotation) để xác định action cụ thể để đón nhận request cho xử lý Model: Action là một java class đảm bảo đặc tính của một object vào mô hình hướng đối tượng và thỏa tính chất của JavaBean View: Result là một kết xuất tốt một dạng xác định action tuyệt trang chuyển về và trình diễn bên trên Web Browser Cơ chế hoạt động của Struts 2 Framework

*

Khi web4_user gửi yêu thương cầu truy tìm xuất ứng dụng web, request được chuyển đến FilterDispatcher, đây là Filter được tạo sẵn vào Framework để làm cho chức năng như Controller FilterDispatcher dựa trên tập tin cấu hình xác định xem action bao gồm được ứng dụng Interceptor hay không Nếu bao gồm, framework sẽ gọi Interceptor theo tuần tự. khi gọi xong xuôi một Interceptor, framework sẽ checking tiếp Interceptor trong stachồng mang đến đến lúc Interceptor cuối cùng Nếu không tồn tại áp dụng interceptor hay interceptor cuối cùng được thực thi thì framework sẽ gọi action kích hoạt đón nhận dữ liệu, thực hiện xử lý với kích hoạt phương thức chỉ định thực thi (mặc định là phương thức exedễ thương – người cần sử dụng gồm thể định nghĩa phương thức thương hiệu không giống cùng chỉ định trong tập tin cấu hình) Sau Khi hàm exedễ thương xử lý trả tất, phương thức sẽ trả ra Result – tất cả thể nhãn tương tự như ActionMapping mặt Struts1. Tại bước này, nếu ứng dụng có áp dụng interceptor là Result sẽ được apply theo chiều ngược chiều gọi ban đầu để trả kết quả trở về tốt chuyển đến action tiếp theo Nhìn tổng quan lại quy mô hoạt động giống trọn vẹn khái niệm Struts1 và MVC2, điểm không giống biệt ở đây là tất cả mọi thứ phải trải qua struts.xml giỏi annotation với một phần như thế nào đó Struts bít dấu FilterDispatcher đối với người lập trình để tạo đề nghị tính linch hoạt trong việc xây dựng và bảo trì ứng dụng  Web, đặc biệt là việc mapping kết xuất giữa các trang không còn lệ thuộc cùng đặt trong code servlet dẫn đến việc mapping trở phải linh hoạt cùng uyển chuyển hơn Điểm đặc biệt của Struts2 áp dụng FilterDispatcher so với Struts1 với Action Servlet theo đánh giá chỉ chủ quan liêu của tác giả bài bác viết là Filter có thể lọc 02 chiều so với Servlet cùng đặc biệt có tác dụng giảm tải việc xử lý cuối cùng và nó cũng là điểm ứng dụng của Dispatcherkích hoạt vào Struts1

*

Các thành phần bao gồm yếu và thường sử dụng của Struts2 Framework FilterDispatcher Khởi tạo kích hoạt class Thực thi phương thức chỉ định theo tập tin cấu hình tuyệt annotation Đọc giá trị string trả về sau thời điểm thực thi để xác định result hay view về phía người cần sử dụng Trong quy trình thực thi, Filter thực hiện Tìm kiếm phương thức execute() tuyệt phương thức được chỉ định vào cấu hình Phát sinch result xuất xắc view tương ứng dựa trên kết quả String trả về của hàm exexinh tươi tuyệt phương thức chỉ định Cú pháp mapping vào website.xml

filter>

    filter-name>struts2filter-name>

    filter-class>org.apabít.struts2.dispatcher.FilterDispatcher

filter>

filter-mapping>

    filter-name>struts2

    /*

filter-mapping>

Action Class giỏi ActionSupport Class Chứa đựng những thuộc tính mapping trên khung và các thành phần xử lý của object (business logic) cùng phương thức chỉ định thực thi Là java class bình thường cùng ko cần thiết phải extends kích hoạt tốt ActionSupport class Struts2 Framework cung cấp cơ chế tự động mapping các tđam mê số trong request trong size đến những thuộc tính vào Action với các thuộc tính thuộc thương hiệu cùng tất cả phương thức setXxx Trong quy trình mapping struts2 framework sử dụng OGNL cụ thế EL để xay kiểu tự động từ size đến kiểu dữ liệu của kích hoạt property – bởi vậy, không nhất thiết thời gian nào cũng khai báo kiểu dữ liệu là String và thực hiện xay kiểu bằng tay Struts Config (struts.xml)

 

      <>

         

           

                   /pageView

                   …

           

      

  

package: nhóm đọc tin cấu hình của những thành phần tất cả bình thường thuộc tính name: xác định thương hiệu của package namespace: phân biệt giữa các package khác tránh xung đột giữa những action với nhau extends: xác định class phụ thân tương tự như khái niệm kế thừa abstract: bằng true nếu lớp là kế thừa action: ánh xạ một action với một class action name: xác định tên action class: xác định java class để xử lý action method: xác định phương thức được gọi lúc request được chuyển tới. Nếu tmê mệt số này không tồn tại thì phương thức exexinh tươi mặc định được tìm kiếm kiếm với thực thi result: xác định tên result tốt page kết xuất của một action name: xác định thương hiệu result. Nếu không có mặc định là giá trị success type: xác định loại result. Nếu không tồn tại mặc định là FilterDispatcher thực hiện forward đến trang kết quả chain: chuyển đến action tiếp theo và copy giá chỉ trị đế valueStaông xã cùng chuyển sang trọng Action mới redirect: chuyển trang như gọi response.sendRedirect redirectAction: chuyển đến Action khác sử dụng phương thức response.sendRedirect include: Cho phnghiền nhúng nhiều module xuất xắc tích hợp nhiều module vào trong ứng dụng file: xác định thương hiệu tệp tin được include vào tập tin struts.xml ActionSupport class mở rộng từ Action cùng được hỗ trợ validation với I18n với nhiều thành phần khác bởi nó được implement từ nhiều thành phần như Validateable, ValidationAware, TextProvider, LocalProvider, and Serializable interfaces Result với ResultType Result được gửi có tác dụng hai thành phần Result Định nghĩa action tiếp theo trong việc xử lý Khi Action trả tất xử lý Result type Xác định đưa ra tiết của việc chuyển Result như chain, redirect, redirectAction, …

*

Ví dụ

Action

public classTestkích hoạt

  ...

  public Stringexecute()

    if(web4_username.equals(“admin”))

      setMessage(MESSAGE + getUserName());

       return“success”;

    else

       return“error”;

   

 

}

struts.xml

...

     /example/DisplayDetails.jsp

     /example/error.jsp

...

ValueStachồng Stack lưu trữ object vào Frameworks cùng những thành phần vào một request Hỗ trợ người dùng sử dụng taglib truy tìm cập các giá trị vào ValueStack Cung cấp đến việc tróc nã cập liên quan đến context hiện hành làm cho việc từ request, session đến application … Các thành phần của Action thuộc các thuộc tính của nó sẽ được lưu vào Value Staông xã với kiểu là object Staông chồng (xem như là truy vấn cập trực tiếp vào kích hoạt ko cần chỉ định đối tượng) cùng bao gồm thể tróc nã cập thuộc tính trực tiếp của kích hoạt (Các giá chỉ trị trùng thương hiệu nhau thì giá chỉ trị cao nhất trong stachồng được tầm nã cập). Lúc tầm nã cập các giá trị này thì không cần phải sử dụng ký hiệu gì cả Các thành phần attribute xuất xắc scope, tuyệt những đối tượng khác vào servlet container sẽ được đưa thành context object (tuyệt context map). Do đó, muốn truy cập những đối tượng này cần xác định cụ thể tầm vực với ký hiệu dấu # ở trước

*

Một số đối tượng mặc định của ValueStachồng

*

ActionContext Vùng lưu trữ tổng để chứa tất cả dữ liệu tương quan đến request với nằm hoàn toàn vào trong ValueStacks Khi dữ liệu được truyền đến container tuyệt struts 2 framework thì interceptor params hỗ trợ trích xuất dữ liệu và đưa cặp name với value của parameter vào ValueStack Ví dụ

*

Do vậy, để tróc nã cập vào ValueStacks của những đối tượng thuộc context Object, bọn họ phải truy hỏi xuất trải qua ActionContext Một số taglib hỗ trợ, bọn họ sẽ tiếp cận trong những thành phần cụ thể vào từng ứng dụng trong từng bài bác Về giao diện tất cả hỗ trợ đầy đủ các control trình diễn giao diện, đặc biệt các control hỗ trợ thuộc tính label chất nhận được developer đính cố nhiên control là nhãn trình diễn nhưng không cần phải tốn công đề tên nhãn trước control Hình như, về khung, mặc định size của taglib sẽ phát sinh ra dạng table thuộc với layout để trình diễn form với đầy đủ các thành phần của css cùng javascript để hỗ trợ đến việc xử lý với trình bày. Do vậy, để đơn giản khung với việc gây ra form tự động chúng ta áp dụng thuộc tính theme=”simple” để khung gây ra mà lại ko apply template xuất xắc layout phức tạp dẫn đến tình trạng bể size Lúc xử lý giao diện đặc biệt trong table Để hỗ trợ trình bày xuất xắc in dữ liệu từ thuộc tính của action xuất xắc JavaBean, Struts 2 taglib cung cấp tag property Vì tích hợp các tag của JSTL để không hề sử dụng JSTL, các tag trong struts 2 tương tự JSTL ngoại trừ tag forEach cùng forToken được nuốm bằng iterator. Hơn thế nữa tag if đã có elseif cùng else, …. OGNL Viết tắt của Object Graph Navigation Language  Hỗ trợ tương tự như EL của JSP nhưng có thể chấp nhận được truy hỏi cập ValueStack nắm đổi giá chỉ trị vào ValueStaông xã lẫn trong JavaBean (EL chỉ có thể chấp nhận được truy hỏi cập không cho cố đổi) Loại dữ liệu của OGNL thường là Map. Trong expression, bọn họ gồm thể truy cập trực tiếp thành phần cần sử dụng OGNL mà ko cần phải bao gồm ký hiệu đặc biệt gì cả, đơn giản rất nhiều so với EL. Lưu ý, những thành phần này phải nằm trong context mặc định của ứng dụng như root. Trong Struts2, context cao nhất là ActionContext giỏi những object được tạo từ JavaBeans. Để reference đến thành phần object bên phía trong giỏi không giống root, họ phải cần sử dụng dấu #. Ví dụ như để truy tìm cập thuộc tính USER vào session, chúng ta phải truy nã cập #session.USER Để định trị giá trị 1 cách đúng chuẩn, họ cần sử dụng cú pháp % vắt cho $ vào EL. Đối với thành phần vào JavaBean chúng ta gồm thể ghi trực tiếp tên thuộc tính mà lại ko cần cú pháp nêu trên Truy cập HttpServletRequest Chúng ta gồm 02 cách: tầm nã cập từ ActionContext giỏi implement class với ServletRequestAware Để truy cập từ ActionContext vào code Java

HttpServletRequestrequest = ServletActionContext.getRequest();

Implement class action với ServletRequestAware, bọn họ Khai báo biến HttpServletRequest request; public HttpServletRequest getServletRequest() return this.request; Gọi hàm getServletRequest Lúc cần truy nã cập request Truy cập HttpSession Chúng ta bao gồm 02 cách: truy nã cập từ ActionContext tuyệt implement class với SessionAware Để tầm nã cập từ ActionContext trong code Java

Mapattibutes = ActionContext.getContext().getSession();

Implement class action với SessionAware, họ Knhị báo biến Map session; Public Map getSession() return this.session; Gọi hàm getSession Khi cần tróc nã cập request Các bước thực hiện xây dựng ứng dụng website áp dụng Struts2 Framework Bước 1: Tạo ứng dụng project Web application Chọn Web Servers hỗ trợ JavaEE cùng tất cả hỗ trợ JavaEE 5 Chọn hay đưa các thành phần hỗ trợ Struts 2 Frameworks Bước 2: Tạo tất cả giao diện đến ứng dụng – trang JSP.. Bước 3: Tạo tất cả action class để đón nhận xử lý Định nghĩa các thuộc tính theo form nhập liệu trong số view từ bước 2 và định nghĩa đầy đủ get với phối cho chúng Cài đặt phương thức execute()  tốt bất kỳ thực hiện xử lý cho action Khi tất cả yêu thương cầu Bước 4: Cấu hình tập tin struts.xml giỏi thiết lập kết nối bằng annotation giữa View với Action Step 5: Build, Deploy và Test ứng dụng

Vận dụng Struts 2Framework vào việc phân tích và cài đặt một ứng dụngcụ thể (ở đây chúng tôi sẽ thực hiệnnội dung tương tự bài trên Struts1 framework hay MVCPattern bên trên Web – Mô hình thiết kế ứng dụng theo dạngModel – View – Controller để mang lại thấy việc phân tíchMVC bao gồm lợi, đặc biệt khi áp dụng bên trên mộtframework cụ thể như Struts)

Ứng dụng ở đây tế bào tả việc xây dựng một ứng dụng cung cấp chức năng như sau Ngưởi cần sử dụng muốn truy hỏi cập vào hệ thống phải thực hiện login để kiểm tra web4_username cùng password bao gồm hợp lệ hay là không Hệ thống thông qua DB kiểm tra tính xác thực của dữ liệu Nếu web4_username cùng password không đúng đắn hay là không tồn tại ứng dụng thông báo cho người sử dụng thông báo “Invalid web4_username và password” với mang lại người cần sử dụng trở về trang Login thông qua một Link có tên là try again với cung cấp một Link Register chất nhận được người dùng đăng cam kết một tài khoản mới Nếu web4_user tồn tại thì chương trình bày form Search. Đặc biệt, bên trên đầu trang phải sử dụng session để lưu trữ web4_user và tất cả các trang phải gồm câu “Welcome, tênUser” Form Search chất nhận được người cần sử dụng search kiếm một web4_user bất kỳ Lúc biết một phần tên của họ Kết quả Search sẽ trình bày bên trên lưới dữ liệu Nếu tra cứu ko thấy sẽ in ra câu “No Result is matched!” Trên lưới tìm kiếm kiếm có thể chấp nhận được người sử dụng update tốt delete dữ liệu Mô tả yêu cầu của bài xích bên trên thể hiện đầy đủ chức năng cơ bản của một ứng dụng thực tế và kết nối DB. Chúng tôi sẽ so với và có tác dụng bài theo từng chức năng và áp dụng Sruts Framework từng chức năng một từng bước từng bước một. Ở đây Cửa Hàng chúng tôi hướng dẫn trước việc sử dụng Struts2 config để chúng ta làm cho quen với Struts2. Các bài bác tiếp theo Shop chúng tôi sẽ mở rộng hơn về annotation về interceptor, validation … Mô Hình Strut2 ứng dụng cho yêu cầu tổng quát tháo hóa như sau

*

DB công ty chúng tôi thao tác tất cả dạng như sau

*

Yêu cầu Nắm vững những khái niệm về MVC, Struts Framework 1.x, Struts2 Framework Nắm vững về ngôn ngữ lập trình Java, lập trình thao tác làm việc hướng đối tượng Cách thức sử dụng JSTL, EL, HTML, OGNL Cách thức sử dụng liên kết động với DB vào code Java Đã thiết lập đặt các ứng dụng về MVC, Struts1 Framework Tools sử dụng ở đây là Netbeans 6.9.1 JDK 6 update 22, JDK 7 update 51, JDK 8 update 66 Server: Tommèo 6.0.26, Tomcat 8.x DBMS: Squốc lộ Server 2005 đến SQL Server 2014 Thư viện hỗ trợ: Driver kết nối database SQLServer (sqljdbc.jar giỏi sqljdbc4.jar), Struts2 Framework taglib Tool Netbeans 6.9.1, tốt 8.x phải hỗ trợ Struts2 Các bước thực hiện Tạo Web Application JavaEE version: JavaEE 5 Nhấn Next, tại bước Chọn Frameworks, chọn Struts 2 với gỡ bỏ dấu kiểm tra “Create example page” vào tag Configuration

*

Nhấn Finish, cấu trúc project trên Netbeans cập nhật với những tập tin cấu hình struts.xml, taglib và các library

*

*

*

Tập tin web.xml được tự động cập nhật mapping với FilterDispatcher như sau

*

Chúng ta thực hiện chức năng Login tương tự bài bác MVC Pattern trên Web – Mô hình thiết kế ứng dụng theo dạng Model – View – Controller Chúng ta tạo trang login.html với HTML thuần như sau

*

*

Như vậy, với đường dẫn là chuỗi rỗng thì phải luôn luôn qua Filter lúc ứng dụng được kích hoạt. Do vậy, chúng ta sẽ tạo action với tên là chuỗi rỗng để chuyển đến trang trực tiếp login.html nhưng mà ko cần thông qua action class xử lý gì cả. Chúng ta cập nhật tập tin struts.xml như sau

*

Như vậy, chúng ta kiểm tra thử và thấy rằng trang login đã được thiết lập chạy đầu tiên thông qua Filter giỏi Struts2 Chúng ta tiếp tục tạo trang invalid.html với thành phần try again tương tự welcome tệp tin để hỗ trợ gọi lại trang login.html

*

Chúng ta thực hiện tạo kích hoạt đến việc xử lý Login Chọn menu File, new File, chọn Struts2 vào Categories với Struts kích hoạt vào File Types

*

Nhấn Next, đặt thương hiệu vào Class Name với chọn package tương ứng

*

Nhấn Finish, kích hoạt tuyệt Java Class được gây ra như sau

*

Chúng ta thực hiện chỉnh sửa trong Action Form như sau Định nghĩa những thuộc tính mapping với size login Định nghĩa các phương thức get/set của những thuộc tính Cài đặt phương thức exedễ thương xử lý login để khi login đúng ra trả ra nhãn “success”, không nên trả ra nhãn “fail” – đây là các result để chúng ta thực hiện mapping vào struts.xml Lưu ý Trong hàm exexinh đẹp, chúng ta thực hiện lưu trữ giá trị web4_user vào vào session khi login thành công xuất sắc với sẽ cần sử dụng ngôn ngữ OGNL để trình diễn kết quả ra trang tìm kiếm.jsp           Trong hàm chúng ta đã sử dụng phương pháp thức lấy session như trong phần nội dung lý thuyết với đưa attribute vào trong nó để lưu trữ giá trị web4_username khi login thành công

*

*

Chúng ta tạo trang search.jsp để trình diễn kết quả Lúc login đúng Chúng ta sử dụng OGNL để lấy session cùng sử dụng taglib property để get dữ liệu từ session của Action Context ra

*

Cấu trúc project hiện ni như sau

*

*

*

*

*

Chúng ta thực hiện mapping những view, action thông qua tập tin struts.xml Tập tin này sẽ không được nằm vào thư mục WEB-INF như trong struts1 cơ mà nó nằm tức thì thư mục gốc của source-code package Netbeans không hỗ trợ cơ chế tool để hỗ trợ add, nhưng họ sẽ gõ tay mapping với cần sử dụng tổ hợp phím Ctrl + Space bar để chọn nhằm đảm bảo tính đúng chuẩn vì chưng tập tin xml được hỗ trợ visual trải qua DTD knhị báo Chúng ta thực hiện bổ sung vào struts.xml như sau Chúng ta knhì báo action với name là action định nghĩa vào form kích hoạt này được mapping với kích hoạt class qua thuộc tính class Và kết xuất xử lý được struts2 framework kích hoạt hàm execute và kết quả trả về sẽ mapping với những result để đến view cụ thể Trong trường hợp action ko tồn tại tuyệt result không tồn tại thì vào quy trình thực thi lỗi 404 sẽ xuất hiện (cải tiến lỗi tốt hơn so với struts1 – chỉ tất cả báo trang trắng)

*

Chúng ta thực hiện Build, Deploy với Testing

*

Nhập đúng

*

Nhập không đúng

*

Chúng ta đã trả tất chức năng Login với Struts2 Frameworks Chúng ta thực hiện chức năng tìm kiếm mang đến ứng dụng Trên trang tìm kiếm.jsp, họ bổ sung size tìm kiếm sử dụng những tag lib như sau

*

Lưu ý: action chúng ta là searchLikeLastname, để sau này áp dụng chúng ta buộc phải áp dụng Action sẽ là tên gọi action với chữ action đầu viết hoa+Action ở sau như phần chức năng trên action là login thì thương hiệu Action class chúng ta sẽ là LoginAction. Ở đây kích hoạt Class của họ sẽ là SearchLikeLastnameAction Chúng ta thực hiện tạo Action Class Gõ tên class cùng package, ở đây sẽ là SearchLikeLastnameAction và package sẽ là sample.struts2, thực hiện nạm đổi class gây ra như sau Knhị báo thuộc tính để đón nhận giá trị tìm kiếm từ size Khai báo danh sách List để đón nhận kết quả trả về để bọn họ đón nhận kết quả trả về. Chúng ta có tác dụng như thế bởi vì bản chất Struts2 đã hỗ trợ dạng backing bean và ngôn ngữ OGNL để họ tầm nã xuất những thành phần vào ActionContext thông qua ValueStack. Trong quá trình xử lý kết quả của kích hoạt được lưu trữ trong action context với như Shop chúng tôi đã giảng giải lý thuyết, thành phần interceptor hỗ trợ trích xuất cùng đưa dữ liệu và valueStack và mapping với Action hay JavaBeans, và Struts2 cung cấp cơ chế mang đến họ truy hỏi cập ValueStachồng. Do vậy, họ không cần lấy request rồi attribute như Struts1 giỏi 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 cho tăng tính phức tạp với xử lý nhiều cho container Phát sinch get cùng phối đến 02 thành phần này Cài đặt hàm exeđáng yêu xử lý kiếm tìm kiếm với gán giá trị cho menu, trả về kết quả nhãn “success”

*

Hình như, Struts2 sử dụng JDK 5 trở lên bởi vì vậy chúng tôi sử dụng dạng dữ liệu generic để xây dựng ứng dụng, tạo sự tiện lợi trong ánh xạ dữ liệu vào quy trình lập trình Cập nhật trang tìm kiếm.jsp trình bày dữ liệu Sử dụng taglib của struts2 để tróc nã cập dữ liệu thông qua action và Action Context, ko sử dụng bất kỳ EL giỏi JSTL

*

*

*

Lưu ý: tag iterator của taglib cung cấp họ thuộc tính status, đây là thuộc tính giúp tạo ra đối tượng IteratorStatus để cung cấp mặt hàng loạt util mang lại chúng ta truy hỏi cập trong khi quy trình duyệt vòng lặp. Một số thuộc tính của Iterator Status như sau

*

Chúng ta tất cả thể áp dụng để lấy record đầu tiên, cuối cùng, đếm số thứ tự … nhưng ko sử dụng lâu năm loại như JSTL 1.1 với EL như trong quy mô MVC Chúng ta thực hiện mapping những view với action trong tập tin struts.xml

*

Start Server Tommèo, Build Project, Deploy với Test đến chức năng search, sau khoản thời gian login thành công

*

Nhấn nút tìm kiếm

*

Nếu ko có

*

Chúng ta tiếp tục với chức năng Delete Giao diện delete được cập nhật trong trang tìm kiếm.jsp (đã trình bày ở trên) như sau

*

Tạo DeleteRecordAction để xử lý như sau (lưu ý phải get luôn luôn tham số nhắc nhở cho lần tìm kiếm lại để fresh lưới)

*

Cập nhật struts.xml với việc gọi lại kích hoạt Search thông qua Result Type là redirectAction với sử dụng EL để lấy giá chỉ trị lần cuối thuộc tìm kiếm truyền thẳng vào chức năng search với parameter trùng với thương hiệu parameter xuất xắc control vào size tìm kiếm

*

Thực hiện clean & Build và deploy ứng dụng để thực hiện chứn năng xóa

*

Thực hiện tiếp tục với chức năng Update Cập nhật giao diện đến trang tìm kiếm.jsp (đã thể hiện toàn bộ trong phần ở trên) như sau

*

Tạo UpdateRecordkích hoạt tương tự như delete như sau

*

*

Mapping kích hoạt tương tự như Delete như sau

*

Chúng ta đã hoàn tất các chức năng yêu cầu với coding cực kỳ đơn giản. Cấu trúc project hiện nay như sau

*

*

*

*

Chúc mừng những bạnđã hoàn tất và nắm tổng quát mắng khái niệm về Struts2.x Framework cơ bản, biện pháp thức thiết kế, mô hình ứngdụng và cài đặt đặt ứng dụng website theo Struts2Framework. Qua đó họ thấy được những ưuđiểm với khuyết điểm của framework này. Ởđây bọn họ nhận thấy với chức năng cơbản cùng đơn giản, struts 2 đã hỗ trợ làmđược ứng dụng website. Ở nội dung bài này,chúng ta chỉ mớii cấu hình bằng struts.xml

Chúng tôi hy vọng nộidung của bài bác này mang lại lợi ích những bạn trong việc cài đặtquy mô ứng dụng website với nhiều framework đểtạo sự thuận lợi vào lựa chọn củaquí vị.

Rất muốn sự góp ýchân thành cùng phân tách sẻ của quí vị về vấn đềnày. Hẹn gặp lại quý vị ở các chủ đềkhác tương quan đến Struts2 Framework từ cơ bảnđến nâng cao, sử dụng annotation để cấuhình, validation, interceptor, xử lý toàn bộ ứng dụngMVC hay Struts1 Framework với Struts2 Framework