在NetBeans 6中開發(fā)Ajax功能的JSF組件
早些年,微軟件的開發(fā)利器總是讓Java陣營的IDE顯得很弱智。微軟種可視化的開發(fā)方式讓無數(shù)的Java程序員向往。雖然Eclipse的出現(xiàn)在一定程度上緩解了這種心態(tài),但還是有差距啊。長江后浪推前浪,前浪死在沙灘上。如今的NetBeans 6號稱很牛,試一試,發(fā)現(xiàn)確實(shí)也比較牛,雖然不能完全與微軟的IDE相提并論,但至少讓我們看到真正可視化編程的曙光。下面就介紹一下如何在NetBeans6中可初見化的開發(fā)具有Ajax功能的JSF組件。
開發(fā)運(yùn)行環(huán)境:NetBeans 6+GlassFish v2
一、創(chuàng)建設(shè)計頁面
1.在NetBeans6下創(chuàng)建一個名稱為ListboxExample的web application,選擇Visual Web JavaServer Faces框架,進(jìn)入Page.jsp的可視化設(shè)計器界面。
2.從工具面板(Palette)中拖一個Listbox組件放在頁面的左上方,在屬性面板(Properties),設(shè)置Listbox的id為personDD。看看,這是不是有點(diǎn)像早期的VB6或是如今的VS2008的操作了?
3.設(shè)置Listbox的multiple屬性為True,這里主要是為了讓Listbox可以進(jìn)行多個值的選擇。
4.在工具面板(Palette)中拖一個Text Area組件,放置在頁面的右邊。它用于顯示在Listbox選擇一個選項時它的子選擇。
5.在屬性窗口中,設(shè)置Text Area組件的row屬性為10。
二、設(shè)計Bean
為了將ListBox中的數(shù)據(jù)保存起來,這里采用了JavaBean的方式。
1.在Navigator窗口中,右擊SessionBean1,并選擇Edit Java Source.。
2.在sessionBeans1類中加入代碼:
Option[] listOptions;
3.在listOptions是點(diǎn)擊右鍵,選擇Insert Code選擇項,選擇Getter and Setter選擇項,如下圖所示:
在出來的界面上,打上勾,點(diǎn)擊OK。
com.sun.webui.jsf.model.Option
5.以同樣的方式,再添加代碼
String[] choices;
并加入getter與setter方法
6.在這個Bean時,還需要在這的構(gòu)造函數(shù)里添加初始化Listbox的代碼,代碼如下:
三、綁定Listbox組件至Bean
接下來需要將上面所設(shè)計的Listbox與Bean進(jìn)行數(shù)據(jù)綁定。
1.打開Page1.jsp頁面的設(shè)計頁面,右擊Listbox組件,選擇choose Bind to Data選項。
2.在出來界面中,選擇SessionBean 1>listOptions,點(diǎn)擊OK,如下圖所示:
3.在Listbox的屬性窗口,選擇selected屬性,點(diǎn)右邊的按鈕,在出來的對話框(與上面的有點(diǎn)類似)選擇SessionBean1 > choices,點(diǎn)擊OK。
四、Listbox的Ajax功能實(shí)現(xiàn)
當(dāng)選擇Listbox中的一條記錄時,在Text Area中應(yīng)該顯示該記錄的子選項。
1.在設(shè)計頁面中,右擊Listbox組件,選擇Edit Event Handler>processValueChange。
2.在該方法中添加如下代碼
3.在頁面的設(shè)計模式下,選擇Listbox的屬性窗口,點(diǎn)擊onChange屬性,在出來的對話框中輸入如下代碼
至此,功能已經(jīng)完成,可以運(yùn)行來看效果。但下面再加一個增加與刪除的功能。
五、Listbox選擇項的維護(hù)
為了對Listbox能進(jìn)行頁面上的增加與刪除,這里加多兩個button.
1.打開SessionBean1的代碼進(jìn)行編輯,加入新的屬性,如下
當(dāng)然,按前面的方法為counter增加getter與setter方法。
2.在SessionBean1增加如下的兩個方法
3.打開頁面的設(shè)計模式,從工具面板中拖一個Button,將ID修改為add,名稱修改為增加。再拖一個Button,ID為Remove,名稱為刪除。
4.雙擊增加按鈕,在add_action()方法中添加如下代碼
5.雙擊刪除按鈕,在remove_action ()方法中添加如下代碼;
完成,運(yùn)行整個工程。
參考:http://www.netbeans.org/kb/60/web/clientsiderendering.html
Powered by: BlogJava Copyright © 詩特林