Tag handler được triệu gọi như thế nào?

Một phần của tài liệu Ngôn ngữ cài đặt JavaServer Pages - JSP.doc (Trang 33 - 36)

III. Tag handler được triệu gọi như thế nào?

Giao tiếp Tag định nghĩa một qui ước truyền thông cơ bản giữa tag

handler và lớp cài đặt trang JSP. Giao tiếp này định nghĩa chu kỳ sống và

các phương thức được triệu gọi khi gặp phải start tag và end tag của một

action.

Lớp cài đặt trang JSP triệu gọi các phương thức setPageContext,

setParent, và các phương thức cài đặt thuộc tính trước khi gọi phương thức

doStartTag. Lớp này cũng bảo đảm rằng phương thức release sẽ được gọi trong tag handler trước khi kết thúc trang. Ví dụ sau thực hiện từng bước cách gọi tag handler.

Cách thực hiện tag handler không có BodyContent

ATag t = new ATag(); t.setPageContext(...); t.setParent(...); t.setAttribute1(value1); t.setAttribute2(value2); t.doStartTag(); t.doEndTag(); t.release();

Giao tiếp BodyTag mở rộng từ giao tiếp Tag bằng cách định nghĩa thêm các phương thức cho phép tag handler truy cập vào thân của nó. Giao tiếp này cung cấp ba phương thức mới:

setBodyContent: tạo nội dung của thân tag và thêm vào tag handler.

doInitBody: được gọi trước khi định trị thân của tag.

DoAfterBody: được gọi trước khi định trị thân của tag. Ví dụ:

Cách thực hiện tag handler có BodyContent

t.doStartTag();

out = pageContext.pushBody(); t.setBodyContent(out);

/* thực hiện các khởi tạo cần thiết sau khi nội dung của thân được gán */

t.doInitBody(); t.doAfterBody(); /**/

/* Khi doAfterBody trả về EVAL_BODY_TAG chúng ta lặp lại phần định trị cho thân tag */

...

t.doAfterBody(); /**/ t.doEndTag();

t.pageContext.popBody(); t.release();

Chương III JAVABEAN I. Khái niệm về JavaBean

Định nghĩa chính thức của JavaSoft về Bean: “JavaBean là một component phần mềm có thể dùng lại được, có thể được thực hiện trực quan bằng môi trường phát triển tích hợp IDE (Integrated Development Environment).”

JavaBean là một đối tượng Java bất kỳ cài đặt interface Serializable. Chúng ta thường truy xuất các đối tượng Java thông qua thuộc tính của nó, với JavaBean điều này cũng hoàn toàn tương tự nhưng thường JavaBean không sử dụng trực tiếp cú pháp Java để truy xuất thuộc tính. JavaBean sử dụng các thẻ tương tự như HTML để định nghĩa Bean, thiết lập hoặc lấy về các giá trị của Bean.

Khi định nghĩa Bean chúng ta phải tuân theo các quy tắc sau:

Tên lớp của Bean phải có tiếp vĩ ngữ là Bean chẳng hạn UserBean, DataAccessBean, ...Thật sự thì quy tắc này không là yêu cầu bắt buộc nhưng nó là một định hướng thông dụng và cho phép những nhà phát triển khác hiểu ngay lập tức vai trò của lớp này. Một Bean phải có một hàm tạo không có tham số. Bean không nên có bất kỳ biến thể hiện (field) nào là ‘public’. Các giá trị bền vững nên được truy cập thông qua các phương thức gọi là getXxx và setXxx. Đối với các server-side Bean không nên dùng thư viện đồ hoạ.

Mẫu chuẩn để định nghĩa JavaBean như sau:

Public class YourBean implements java.io.Serializable {

protected int theValue; // Phương thức khởi tạo Bean public MyBean ()

{ }

// Khai báo phương thức đặt giá trị cho thuộc tính MyValue

public void setBeanValue (int newValue) {

theValue = newValue; }

// Khai báo phương thức trả về giá trị của thuộc tính MyValue

public int getBeanValue () {

return theValue; }

}

Chúng ta biên dịch thành phần Bean tương tư như biên dịch các lớp đối tượng Java thông thường khác (sử dụng trình biên dịch javac của JDK). Nếu muốn triệu gọi đối tượng Bean trong trang JSP thì ta sử dụng mã Java của JSP Bean có thể được khai báo và sử dụng như sau:

<html> <%

YourBean bean = new YourBean (); bean.setBeanValue (11 + 2);

out.println (bean.getBeanValue ()); %>

</html>

Tuy nhiên, mục đích của JavaBean là cho phép sử dụng các thẻ thay thế cho mã Java. Hãy xem Bean được định nghĩa và sử dụng thông qua thẻ <jsp:useBean> sau đây:

<html>

<jsp:useBean id = “bean” scope = “page”>

<jsp:setProperty name = “bean” property = “BeanValue” value = “12 + 3”>

<jsp:getProperty name = “bean” property = “BeanValue”> </html>

Trong cách viết thứ hai, hoàn toàn không có mã Java. Trang JSP sử dụng cú pháp tương tự HTML dựa vào các thẻ để gán giá trị và truy xuất thuộc tính của JavaBean. Khi sử dụng các thẻ để truy xuất thuộc tính của Bean chúng ta không sử dụng các tiếp đầu ngữ get/set.

Một phần của tài liệu Ngôn ngữ cài đặt JavaServer Pages - JSP.doc (Trang 33 - 36)

Tải bản đầy đủ (DOC)

(67 trang)
w