Những điểm mới trong jsf 1.2: Phần 1

Hôm nay tôi xin giới thiệu những điểm mới trong JSF 2. Mà trong đó việc dùng chung với JSP Framework là một thành tựu quan trọng nhất của JSF 2, được phát triển thông qua JSR 252. Thêm nữa là jsf có những đặc tính dễ dùng hơn. Tôi xin nói về những điểm chủ yếu sau:

1.Sử dụng chung với công nghệ JSP.
2.Dễ dàng tạo một message.
3.Tính năng lưu trạng thái.
4.Tắt tính năng tạo id cho component.
5.setPropertyActionListener cho tag.

1.Sử dụng chung với JSP
Cái chính của sự xung khắc nhau giữa JSF và JSP là sự khác nhau về life cycle mà cả 2 hỗ trợ. JSP chỉ có một life cycle trong suốt quá trình tạo trang. JSF thì nó đuợc chia làm nhiều phần, khi component tạo, dữ liệu được xử lý, sau đó là thể hiện lên trang. Tuy nhiên, một trang JSF không nhất thiết phải dịch toàn bộ lập tức. Kết quả cho thấy, dùng JSF component trong trang JSP thỉnh thoảng là nguyên nhân của sự thể hiện sai thứ tự, trạng thái component bị mất, và còn nhiều lỗi khác.
Tôi xin nói về một số thay đổi trong JSF để ta có thể sử dụng đồng thời JSF và JSP.

1.Ta có thể dùng JSF component bên trong thẻ forEach của JSTL.
2. Cải tiến trong việc tạo tree trộn.
3.Cải tiến cách viết EL một cách thống nhất.
1.1 Dùng JSF component trong forEach của JSTL.
Được minh hoạ trong đoạn code sau:














Item Name Item Price Item Quantity



1.2 Cải tiến trong việt tạo tree trộn.
Trộn JSP với JSF thường ra kết quả không như ta mong muốn. Ví dụ đoạn code sau, Hi sẽ xuất hiện sau What's your name?.



What's your name?

Vậy nếu ta đổi thứ tự hai dòng thì sao? JSF phục thuộc vào cấu trúc cây của JSP. Vì JSP dịch ngay lập tức dòng text trong kho JSF chỉ dịch khi đến dòng đóng panelGroup. Vậy là sao để Hi nằm truớc What's your name?
Vấn đề này đuợc giải quyết trong JSF 2, và giải quyết như sau:
Tạo và dịch của component tree chia làm 2 bước để ngăn dịch tức thời của JSP
Thuộc tính rendersChildren được set thành true trên tất cả các component.
Những dòng text tĩnh trong component được lưu tạm thời thành một UIInput component và đặt vào trong tree.
Quản lý trạng thái được chuyểntừ ViewTag vào trong ViewHandle

1.2 Cải tiến cách viết EL một cách thống nhất.
Cả trong JSP và JSF điếu có cách viết EL một cách thống nhất. Vì vậy nếu bạn có mở rộng một bộ thẻ của JSF phải thay ValueBinding thành ValueExpression, thay MethodBinding thành MethodExpression.

2.Dễ dàng tạo một message.
Và đã thay đổi như thế nào:
Một tập hợp các chuẩn message mới.
Thêm vào 3 thuộc tính mới requiredMessage, converterMessage và validatorMessage cho input component.
Thuộc tính label trong input component
Thẻ resource-bundle khai báo bundle cho application.
2.1 Một tập hợp chuẩn messages mới.
Dùng cho validator và convertor
2.2 Thêm 3 thuộc tính requiredMessage, converterMessage và validatorMessage.
Ý nghĩ thì tuỳ thuộc vào cách dùng, ví dụ: bạn dung validator nói rằng userId phải có 8 ký tự và một cái khác nói rằng password chỉ cho 9 kí tự. Nhưng bạn muốn dùng 1 validator. với validatorMessage.
2.3 Thuộc tính label trong input.
Giúp ta thông báo lỗi một cách rỏ ràng hơn. Ví dụ tôi có một input BIRTH_DATE, tôi sẽ dùng label để thông báo lỗi như sau:
{2}: "{0}" could not be understood as a date.

Giả sử bạn nhập older than the hills sẽ thông báo lỗi như sau
Birth Date: "older than the hills" could not be understood as a date.

2.3 Cấu hình resource-bundle.
Bạn có thể khai báo resource-bundle theo một cách mới

customMessages
resources.CustomMessages


Và sử dụng như sau

Cao Trong Hien

,

0 Responses to "Những điểm mới trong jsf 1.2: Phần 1"

Đăng nhận xét