1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO SEMINAR STRUTS 2 pot

50 405 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 1,03 MB

Nội dung

- Trong ứng dụng web application thì: + Tầng View: là các trang HTML/XHTML + Tần Controller: đóng vai trò trung gian trong việc bắt sự kiện event do người dùng tương tác trên tầng giao d

Trang 1

BÁO CÁO SEMINAR STRUTS 2

Bộ môn Chuyên Đề Java

Giáo Viên Hướng Dẫn

Thầy : Ngô Bá Nam Phương

Trang 2

Mục lục

Mục lục 2

I.Giới thiệu mô hình MVC 5

1.Lợi ích của việc sử dụng mô hình MVC 6

II.Giới thiệu về Struts 2 6

1.Giới thiệu struts 2 6

2.Ích lợi của Struts 2 Framework 7

III.Kiến trúc và hoạt động của Struts 2 8

1.Kiến trúc của Struts 2 framework 8

2.Quá trình xử lý request trong Struts2 framework 9

IV.Cấu hình Struts 2 trên Netbeans 10

1.Cấu hình struts 2 project 10

2.Khai báo Struts 2 12

a.Khai báo dùng xml 13

b.Khai báo dùng Annotation 15

V.Actions và Results 16

1.Actions 16

2.Results 16

Các loại results struts hỗ trợ sẵn 16

a.Depatcher Result 17

b.Redirect Action Result 17

c.Chain Result 17

d.Redirect Result 18

Trang 3

e.FreeMaker Result 18

f.Velocity Result 18

g.Plain Text Result 19

h.Tiles Result 19

i.HttpHeader Result 19

j.Stream Result 20

k.XSL Result 20

l.Global Result 21

m.Custom Result: 21

VI.Giới Thiệu Interceptors 21

1.Danh sách các Interceptor dựng sẵn 22

2.Custom một Interceptor 23

VII.Các Tags trong struts 2 25

1.FORM TAGS 25

a.Using Struts Tags 25

b.Common Attributes 25

c.The Form Tag 26

d.The textfield, password, hidden Tags 27

e.The submit Tag 27

f.The reset Tag 27

a.The label Tag 28

b.The head tag 28

c.The texterea tag 28

d.The checkbox Tag 28

Trang 4

e.The list, listKey, and listValue attributes 28

f.The radio Tag 29

g.The select Tag 29

h.Select Option Grouping with optgroup 29

i.Select Option Grouping with optgroup 30

j.The combobox Tag 30

k.The updownselect Tag 30

2.GENERIC TAGS 31

a.The property Tag 31

b.The a Tag 31

c.The action Tag 31

d.The param Tag 32

e.The bean Tag 32

f.The date Tag 33

g.The include Tag 33

h.The set Tag 33

i.The push Tag 33

j.The url Tag 34

k.The if, else, and elseIf Tags 34

l.The iterator Tag 35

m.The append Tag 35

n.The merge Tag 36

o.The generator Tag 36

p.The sort Tag 37

Trang 5

q.The subset Tag 37

IX.Ajax và Struts 2 37

1.The Head Tag 37

2.The Div Tag 38

3.The a Tag 39

4.The Submit Tag 41

5.The Bind Tag 43

6.The datetimepicker Tag 44

7.The tabbedpanel Tag 45

8.The textarea Tag 47

9.The autocompleter Tag 47

10.The tree and treenode Tags 49

X.Tài liệu tham khảo 50

I Giới thiệu mô hình MVC

- MVC viết tắt từ cụm từ Model-View-Controller

- MVC lần đầu được sử dụng vào năm 1979 trong ứng dụng Smalltalk.Nó được phát triển bởi Trygve Reenskaug

- Ngày nay với sự phát triển của công nghệ,một ứng dụng có thể được tách thành nhiều phần (layer) và chúng được chạy ở trên nhiều máy tính khác nhau,chẳng hạn như: tầng giao diện (The presentation/User Interface) ,tầng nghiệp vụ (Business logic/Controller), tầng truy xuất dữ liệu (data access model) Mô hình MVC ra đời để đáp ứng cho những yêu cầu trên,và nó được chọn làm kiến trúc triển khai trên các ứng dụng web application.

- Trong ứng dụng web application thì:

+ Tầng View: là các trang HTML/XHTML

+ Tần Controller: đóng vai trò trung gian trong việc bắt sự kiện (event) do người dùng tương tác trên tầng giao diện (View Layer),sau đó ứng với các sự kiện này nó sẽ đánh thức các xử lý nghiệp vụ tương ứng ở tầng nghiệp vụ (Model Layer).Kết quả nhận được sau khi xử lý sẽ được gửi trả lại tầng giao diện

Trang 6

+ Tầng Model: đóng vai trò trong việc xử lý tất cả các thao tác nghiệp vụ,từ việc truy xuất cơ sở dữ liệu,tính toán kết quả trả về…

- Một số framework sử dụng mô hình MVC: Swing, Struts, Tapestry, Spring MVC Framework, ASP.NET MVC Framework, PureMVC Framework for Actionscript,

CakePHP…

1 Lợi ích của việc sử dụng mô hình MVC

Tách biệt rõ ràng nhiệm vụ của từng layer: model-view-controller => giúp cho việc phân công công việc trong nhóm (work team) được dễ dàng.

- Mang lại hiệu quả cao trong việc tổ chức và tái sử dụng lại code.Chẳng hạn như với kiến trúc tổ chức của model thì kết quả trả về là trung lập,nó không theo 1 chuẩn formatting (danh sách chuỗi,XML,JSON…) nào cả => có thể tái sử dụng lại cho các tầng View ở ứng dụng khác

- Tính dễ thay đổi (modifiability) tầng View hay tầng Model nếu có nhu cầu vì mỗi tầng nay hoàn toàn tách biệt và không có mối ảnh hưởng ràng buộc với nhau.

- Thông thường,HTTP protocol truyền tham số request theo kiểu chuỗi thông thường,và chuỗi này phải được chuyển đổi (convert) sang các định dạng (format) thích hợp tùy theo mỗi ứng dụng.Công việc này đòi hỏi tốn nhiều thời gian và dễ gây ra lỗi.Với kiến trúc Model của mô hình MVC,dữ liệu này sẽ tự động được convert thành giá trị của các biến thuộc tính trong lớp đối tượng.

II Giới thiệu về Struts 2

1 Giới thiệu struts 2

- Vào tháng 12/2005,Struts và webwork framework đã được kết hợp với nhau để phát triển nên Struts 2 Framework Struts 2 Framework rất thích hợp và dễ dàng mở rộng để phát triển các ứng dụng web với mức độ khác nhau

Trang 7

2 Ích lợi của Struts 2 Framework

Struts 2 được xây dựng và phát triển dựa trên nền tảng mô hình MVC nên nó thừa hưởng được đầy đủ các ưu điểm mà mô hình MVC đem lại.

- Dễ dàng tùy chỉnh (customize) chu kỳ xử lý (request lifecycles ) cho từng action

- Giải quyết hiệu quả vấn đề internationlization và localization trong các ứng dụng web

- Tự động chuyển đổi kiểu dữ liệu chuỗi truyền thống trong tham số request parameter thành các đối tượng lớp dữ liệu java => tiết kiệm được thời gian và công sức cho các lập trình viên

- Cung cấp các thẻ tag,các themes và templates giúp cho việc làm giao diện GUI trở nên dễ dàng,nhanh lẹ và tăng tính tái sử dụng.

- Tính mở rộng (Extensibility) cao thông qua việc hỗ trợ các plug-in

- Hỗ trợ portal

- Hỗ trợ AJAX

- Dễ dàng tích hợp với Spring framework và Hibernate.

Trang 8

III Kiến trúc và hoạt động của Struts 2

1 Kiến trúc của Struts 2 framework

Hình 1: Kiến Trúc Của Struts 2 Framework

i ActionContextCleanup : là tùy chọn và được sử dụng khi tích hợp với cáccông nghệ như SiteMash Plugin

ii FilterDepatcher: là bộ lọc nó Sử dụng ActionMapper để xác định xem Action nào được call và sau đó giao quyền lại cho ActionProxy

iii ActionProxy: lấy những action từ struts.xml qua sự giúp đỡ của ConfigurationManager từ đó tạo ra những ActionInvocation thực hiện gọi Action

mà ta đã config trong struts.xml trước đó nó gọi tới những interceptor (nếu được config) Và sau đó lấy về kết quả thích hợp tái tạo lại các trang jsp theo mẫu nào

đó và trả về lại cho người dùng

iv Action là một lớp do developer tự định nghĩa, đây là lớp làm việc cơ bản , Là một POJO (Plain old java object) có phương thức execute()

Trang 9

v Template: chứa kết quả trả về cho người dùng Trong Struts2 nó là những result của Action được config trong struts.xml Có một số loại result sau:

2 Quá trình xử lý request trong Struts2 framework

a. Người sử dụng gửi yêu cầu đến server để yêu cầu một số tài nguyên của ứng dụng

b. Bộ điều khiển lọc (FilterDispatcher) xem xét yêu cầu và sau đó xác định một Action thích hợp

c. Các bộ chặn (Interceptors) được ứng dụng: các cấu hình bộ chặn áp dụng cho các chức năng chung như: luồng công việc, thẩm định, tải file … được tự động ứng dụng vào yêu cầu

d. Thực thi Action: sau khi phương thức action được thực thi để thực hiện các hoạt động liên quan đến cơ sở dữ liệu như sắp xếp hoặc nhận dữ liệu từ cơ sở dữ liệu

Trang 10

Hình 2: Tổng quan xử lý request trong Struts 2

Hình 3: Xử lý request trong Struts 2

IV Cấu hình Struts 2 trên Netbeans

1 Cấu hình struts 2 project

Một project của Struts 2 trên netbeans IDE cũng như bao project Web khác trên Netbeans nhưng có thêm một số phần quan trọng để cấu hình cũng như là thư viện để struts 2 hoạt động Để cấu hình cho struts hoat động thì đầu tiên phải tạo một project bình thường và

Trang 11

server của struts 2 chính là Tomcat và framework thì ta không chọn Sau đó download thư viện struts 2 về

Bước tiếp theo thực hiện giải nén file thư viện struts ra một nơi nào đó trên ổ cứng Và thực hiện add thư viện vào project của mình Đối với một project Struts 2 đơn giản ta chỉ cần add các file jar sau : commons-logging-1.0.4.jar, ognl-2.6.11.jar, xwork-2.0.4.jar, freemarker-2.3.8.jar, struts2-core-2.0.11.jar là đủ khi cần ta có thể add thêm các thư viện khác

Ta đã xong phần add thư viện cho project struts 2

Bước tiếp ta thực hiện tạo các file cấu hình là struts.xml trong package source, và chỉnh lại

file cấu hình web.xml và thêm file applicationContext.xml trong package WEB-INF

Để struts 2 hoạt động thì bạn phải viết lại file web.xml như sau:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<filter>

<filter-name>struts2</filter-name>

class>

</session-config>

<welcome-file-list>

Trang 12

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<package name = "packagename" extends="struts-default">

<!—thêm những action hay interceptor vào đây >

2 Khai báo Struts 2

Có 2 cách để thực hiện khai báo cho struts2 là dùng xml để khai báo và dùng Annotation

để khai báo Sau đây là 2 cách khai báo đó trên môi trường của Netbeans

Trang 13

Hình 4 Khai báo struts 2

a Khai báo dùng xml

Để hiểu hơn về cách cấu hình này thì chúng ta sẽ xem qua ví dụ sau:

<action name="Login" class="manning.Login">

<result>/AccountPage.jsp</result>

<resultname="input">/Login.jsp</result>

</action>

<action name="Registration" >

<result>/Registration.jsp</result>

</action>

<action name="Register" class="manning.Register">

<result>/RegistrationSuccess.jsp</result>

<resultname="input">/Registration.jsp</result>

</action>

i Action

- Trong cách khai báo trên thì ứng với mỗi action ta sẽ khai báo trong thẻ

“action” trong thẻ action thì có các thuộc tính như

• Name: là tên của action mà ta sẽ gọi

• Class : là ActionClass thực hiện xử lý action trên

• Method: nếu người dùng không khai báo attribute method này thì

đồng nghĩa với việc Struts sẽ chọn phương thức execute trong

ActionClass mà thực hiện Còn nếu người dùng khai báo chổ này thì

Trang 14

Struts sẽ lấy phương thức được khai báo để thực hiện sử lý cho action đó.

- Ngoài method như trên còn có một dạng gọi là WildCard method

o Đôi khi ta thao tác trên một đối tượng có một tập các action ví dụ như SinhVien có các action mà người dùng thường sử dụng như là delete, insert , update, … thì ta có một cách đơn giản để khai báo mapping cho action là dùng wildcard method

 Với delete là một phương thức trong ClassAction

- Thỉnh thoảng thì chúng ta khai báo một action nhưng action đó không tồn tại nên struts sẽ báo lỗi, Chúng ta không muốn đều này xảy ra vì thế mà struts cung cấp thêm cho chúng ta cách config một action gọi là Default action để khi struts thực hiện mapping mà không tìm thấy action nào phù hợp nó sẽ thực hiện action default này

<packagename="Hello" extends="action-default">

<default-action-ref name="UnderConstruction">

<actionname="UnderConstruction">

<result>/UnderConstruction.jsp</result>

</action>

ii Result

- Trong thẻ action còn có thẻ con là result

• Khi 1 Action được thực hiện thành công, nó sẽ trả về 1 chuỗi

• Giá trị của chuỗi được sử dụng để chọn thành phần kết quả

• 1 action mapping sẽ thường có 1 tập thể hiện các kết quả khác nhau

có thể xảy ra

• Có các tên kết quả đã được xác định trước(tokens)

• Ứng dụng có thể định nghĩa các tên kết quả khác(token) để khớp với

1 số trường hợp mong muốn

- Result định nghĩa trước gồm:

• String SUCCESS = "success";

• String NONE = "none";

• String ERROR = "error";

• String INPUT = "input";

• String LOGIN = "login";

- Result Element:

Trang 15

• Name: tên result là giá trị trả về khi action thực hiện , nó có thể là tokens có sẳn hoặc là một tokens do mình định nghĩa.

• Type :kiểu result quy định kiểu result : depatcher, chain… Nếu người dùng không khai báo thì struts sẽ lấy mặt định là depatcher

• Có 3 cách để khai báo result:

o Khai báo không dùng type là default

<resultname="success" type="dispatcher">

<param name="location">/ThankYou.jsp</param>

o Khai báo sử dụng type default, param cũng default

<result>/ThankYou.jsp</result>

b Khai báo dùng Annotation

Đối với cách khai báo dùng Annotations thì ta sẽ xem xét ví dụ sau

@Results({

@Result(name="input", value="/RegistrationSuccess.jsp" ) @Result(value="/RegistrationSuccess.jsp" )

})public class Login implements Action { public String execute() {

//Business logic for login }

}Đây là cách khai báo trong lúc cài đặt ActionClass

Trong 2 cách trên người ta thường dùng nhất là cách dùng XML để cấu hình Có một số người thì quen sử dụng các công nghệ cũ chỉ thực hiện cấu hình trên XML thì sẽ nhanh chóng tiếp cận hơn là cách dùng Annotation

Trang 16

V Actions và Results

1 Actions

Khi một request được gởi từ phía người dùng đến server thì nó sẽ được ánh xạ thành một action tương ứng (do mình cấu hình) Và action này sẽ được controller điều hướng cho một classAction tương ứng thực thi (do chúng ta cấu hình)

• ActionClass : Nó là đơn vị làm việc cơ bản Nó là một POJO mà có thêm phương

thức execute() Thường thì ActionClass được kế thừa từ lớp ActionSupport.

• ActionSupport: nằm trong package: com.opensymphony.xwork2 ActionSupport nóđược implement từ lớp Action, LocaleProvider, TextProvider, Validateable,

ValidationAware Nó có một số thuộc tính final kế thừa từ lớp Action và được xem như là kết quả trả về từ action : ERROR, INPUT, LOGIN, NONE, SUCCESS Có phương thức chủ yếu là execute() ,và một số phương thức tham khảo tại nguồn

2 Results

Không giống như Struts1 kết quả của một action là một ActionForward Trong Struts2 khi một phương thức thực thi một action hoàn thành thì kết quả nó trả về là một chuỗi và tùy vàochuỗi này mà ta có thể cấu hình để struts mapping với một tập các thể hiện của kết quả trả về cho người dùng

Các loại results struts hỗ trợ sẵn

Trang 17

a Depatcher Result

Thực hiện include hoặc là forward đến một view thường là một trang jsp Nếu trong quá trình khai báo mà ta không khai báo loại result thì mặc định Struts sẽ hiểu result theo kiểuDepatcher

VD:

<resultname="success" type="dispatcher">

<param name="location">foo.jsp</param>

</result>

b Redirect Action Result

Kết quả trả sau khi thực hiện action sẽ sử dụng ActionMapper để redirect để thực hiện một action khác

Tham số:

• actionName : là tên action sẽ redirect tới

• namespace: là namespace chứa actionName Nếu namespace là null thì Struts xem actionName nằm trong cùng namespace với action gọi nó

VD: <package name="public" extends="struts-default">

<actionname="login" class=" ">

<resulttype="redirect-action">

<paramname="actionName">dashboard</param>

<paramname="namespace">/secure</param>

</result>

</action>

</package>

<package name="secure" extends="struts-default" namespace="/secure">

<actionname="dashboard" class=" ">

<result>dashboard.jsp</result>

<resultname="error" type="redirect-action">error</result> </action>

<actionname="error" class=" ">

<result>error.jsp</result>

Trang 18

• namespace: là namespace chứa actionName, nếu là null thì là trong cùng namespace với action hiện tại

• method: là phương thức sẽ được gọi ở class Action của action đích Nếu không khai báo thì sử dụng phương thức execute

• skipAction: danh sách các action cách nhau bởi dấu “,” là những action có thể được chuyển hướng đến

<resultname="success" type="redirect">

<param name="location">foo.jsp</param>

<param name="parse">false</param>

</result>

e FreeMaker Result

Sẽ render một view sữ dụng template FreeMakerTham số

• Location : nơi lưu template

• contentType: loại nội dung Mặc định là “text/html”

• writeIfCompleted – (mặc định là false), write vào stream khi và chỉ khi không có lỗi nào trong quá trình xử lý mẫu Cài đặt template_exception_handler=rethrow trong freemarker.properties sẽ có hiệu quả tương tự

Trang 19

g Plain Text Result

Result này thực hiện trả về nội dung theo định dạng text bình thường Thường được

sử dụng khi muốn thể hiện một trang web dưới dạng text bình thường

Tham số:

• Location : vị trí file cần show nội dung

• charSet: tập ký tự được sữ dụngVD:

<actionname="displayJspRawContent" >

<resulttype="plaintext">

<param name="location">/myJspFile.jsp</param>

<param name="charSet">UTF-8</param>

• headers – giá trị header

• error - http servlet trả về mã lỗi mà sẽ được thiết lập trên một response

• errorMessage – thông điệp lỗi để thiết lập trên response nếu tham số 'error' được thiết lập

VD:

<resultname="success" type="httpheader">

<param name="status">204</param>

Trang 20

<param name="headers.a">a custom header value</param>

<param name="headers.b">another custom header value</param>

</result>

<resultname="proxyRequired" type="httpheader">

<param name="error">305</param>

<param name="errorMessage">this action must be accessed through a prozy</param>

• contentLength – độ dài bytes

• contentDispostion – giá trị các bố trí nội dung header để chỉ ra tên file (mặc định

= inline, các giá trị đặc trưng filename="document.pdf"

• inputName – tên của thuộc tính InputStream từ action chuyển đến (mặc định = inputStream)

• bufferSize – kích thước của bộ đệm để copy từ input vào output (mặc định = 1024)

VD:

<resultname="success" type="stream">

<param name="contentType">image/jpeg</param>

<param name="inputName">imageStream</param>

<param name="contentDisposition">filename="document.pdf"</param>

<param name="bufferSize">1024</param>

Trang 21

• matchingPattern – mẫu chỉ kết hợp với các phần tử mong muốn, mặc định nó kết hợp với mọi thứ.

• excludingPattern – mẫu loại bỏ các phần tử không mong muốn, mặc định không

có gì

l Global Result

Loại kết quả này thường được dùng khi kết quả này được gán cho nhiều action khác nhau thì nếu ta khai báo trong mỗi action thì trở thành dư thừa do đó ta khai báo một lần và khi action thực hiện nếu trả ra đúng với một token nào đó thì result này sẽ được gọi

Ngoài các Result trên thì developper có thể tự tạo cho mình một Result

Để custom một Result thì tạo một class và nó implement từ interface

com.opensymphony.xwork2.Result có phương thức exectue.

VI Giới Thiệu Interceptors

Interceptor là một phần rất quan trọng trong Struts2 nó được cấu hình để thực hiện các chức năng như workflow, validation, upload file,…

Khi được config thì khi một action triệu gọi nó sẽ qua các bộ interceptor nếu không bị interceptor điều hướng thì nó sẽ thực hiện action được gọi sau đó sẽ trả về kq và qua interceptor một lần nữa nhưng theo chiều ngược lại sau đó trà kết quả về cho người dùng

Trang 22

Hình 5 : Interceptor trong Action Life Circle

1 Danh sách các Interceptor dựng sẵn

Conversion Error Interceptor conversionError

Create Session Interceptor createSession

Execute And Wait Interceptor execAndWait

File Upload Interceptor fileUpload

Trang 23

Logger Interceptor logger

Model Driven Interceptor modelDriven

Scoped Model Driven Interceptor scopedModelDriven

Static Parameters Interceptor staticParams

Token Session Interceptor tokenSession

2 Custom một Interceptor

Ngoài những interceptor trên thì ta cũng có thể tạo ra những interceptor cho chính chúng ta Trong xwork cung cấp cho chúng ta một Interface Interceptor Interface này có 3 phương thức chính là:

• init(): Phương thức được gọi đúng một lần sau khi Interceptor được tạo ra

• intercept(): phương thức được gọi mỗi khi action được invoke và Intercept này sẽthực hiện trước và sau khi action execute

• destroy: phương thức gọi khi interceptor bị hủy Thực hiện giải phóng tài nguyên

Trong xwork cũng cung cấp cho chúng ta một class abstract AbstractInterceptor lớp này implement từ Interface Interceptor Nó cung cấp cho chúng ta 2 phương thức init() và destroy() rỗng

Trang 24

i Tạo interceptor

Để tạo một Interceptor thì ta thực hiện tạo một class và cho extends từ class AbstractInterceptor hay implement từ interface Interceptor Sau đó thực hiện viết lại các phương thức cho phù hợp với muc đích của mình

publicString intercept(ActionInvocation invocation) throws Exception{

MyAction action = (MyAction)invocation.getAction();

action.setDate(new Date());

return invocation.invoke();

}}Trong khi tạo một Interceptor chúng ta làm việc với 1 interface khá là quan trong là ActionInvocation Inteface này nó đại diện cho trạng thực thi của một Action Trong interface này có phương thức quan trọng là phương thức invoke() Phương thức này để triệu gọi đến bước kế tiếp trong chuỗi xử lý một action

ii Sử dụng custom interceptor:

Strong struts.xml ta thực hiện khai báo interceptor của mình như sau:

<interceptors>

<interceptor name="myinterc1" class=" "/>

<interceptor name=" myinterc2" class=" "/>

</interceptors>

<action name="login" class="tutorial.Login">

<interceptor-ref name="myinterc1"/>

<interceptor-ref name=" myinterc2"/>

<result name="input">login.jsp</result>

<result name="success“ type="redirect-action">/secure/home</result>

</action>

Có những lúc chúng ta muốn các interceptor của chúng ta thực hiện theo một thức tự và

sữ dụng nhiều lần cùng một thứ tự đó thì nếu dùng cách khai báo từng interceptor trong mỗi action thì sẽ dư thừa Do đó trong struts2 có khái niểm stack để chúng ta khai báo thứ tự của các interceptor mình sẽ dùng

Để hiểu rõ thì xem ví dụ sau:

<package name="default" extends="struts-default">

<interceptors>

<interceptor name="timer" class=" "/>

<interceptor name="logger" class=" "/>

<interceptor-stack name="myStack">

<interceptor-ref name="timer"/>

<interceptor-ref name="logger"/>

Trang 25

</interceptors>

<action name="login" class="tutuorial.Login">

<interceptor-ref name="myStack"/>

<result name="input">login.jsp</result>

<result name="success“ type="redirect-action">/secure/home</result>

</action>

</package>

VII Các Tags trong struts 2

Tag library gồm: User Interface (UI) tags và non-UI tags , AJAX

1 FORM TAGS

a Using Struts Tags

Muốn sử dụng Tag Lib cần khai báo dòng sau vào đầu trang JSP

<%@ taglib prefix="s" uri="/struts-tags" %>

b Common Attributes

The Common attributes

Requiredposition * String

Template-related attributes

Ngày đăng: 29/06/2014, 15:20

HÌNH ẢNH LIÊN QUAN

Hình 1: Kiến Trúc Của Struts 2 Framework - BÁO CÁO SEMINAR STRUTS 2 pot
Hình 1 Kiến Trúc Của Struts 2 Framework (Trang 8)
Hình 3: Xử lý request trong Struts 2 - BÁO CÁO SEMINAR STRUTS 2 pot
Hình 3 Xử lý request trong Struts 2 (Trang 10)
Hình 2: Tổng quan xử lý request trong Struts 2 - BÁO CÁO SEMINAR STRUTS 2 pot
Hình 2 Tổng quan xử lý request trong Struts 2 (Trang 10)
Hình 4 Khai báo struts 2 - BÁO CÁO SEMINAR STRUTS 2 pot
Hình 4 Khai báo struts 2 (Trang 13)
Hình 5 : Interceptor trong Action Life Circle - BÁO CÁO SEMINAR STRUTS 2 pot
Hình 5 Interceptor trong Action Life Circle (Trang 22)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w