天天看點

《Java EE 7精粹》—— 3.7 伺服器和用戶端擴充點

本節書摘來異步社群《java ee 7精粹》一書中的第3章,第3.7節,作者:【美】arun gupta,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

轉換器、驗證器和監聽器是伺服器端的附屬對象,用于為頁面上的元件添加更多的功能。行為是用戶端的擴充點,可以使用行為定義的腳本增強元件的渲染内容。

轉換器用于把元件中輸入的資料從一種格式轉換為另一種格式(例如,string到number)。jsf提供了幾種内置的轉換器,如f:convertnumber和f:convertdatetime。他們可應用于任何可編輯的元件:

《Java EE 7精粹》—— 3.7 伺服器和用戶端擴充點

在這段代碼中,文本框中輸入的文本将被轉換為一個整數,如果文本不能轉換,則抛出一條錯誤資訊。

可以很容易地建立自定義的轉換器:

《Java EE 7精粹》—— 3.7 伺服器和用戶端擴充點

在這段代碼中,方法getasobject和getasstring用于執行模型資料對象和适于頁面渲染表述的字元串對象之間的,對象到字元串和字元串到對象的轉換。這個pojo實作了converter接口,同時還标有@facesconverter注解。這樣的轉換器就可以在jsf頁面中使用:

《Java EE 7精粹》—— 3.7 伺服器和用戶端擴充點

@facesconverter的value屬性值一定要和converterid屬性值比對。

校驗器用于驗證輸入元件接收的資料。jsf提供了幾種内置的驗證器,如f:validatelength和f:validatedoublerange。這些驗證器可應用于任何可編輯的元件: