Struts 的動(dòng)態(tài)復(fù)選框
用動(dòng)態(tài)選擇的元素輕松創(chuàng)建復(fù)選框 級(jí)別: 中級(jí)
Danilo Gurovich , 首席工程師, Earthlink Inc.
2005 年 11 月 28 日
Struts Recipes 的合著者 Danilo Gurovich 從 George Franciscus 停止的地方開始,介紹了易于使用的創(chuàng)建動(dòng)態(tài)選擇復(fù)選框的 Struts 訣竅。
在用戶界面設(shè)計(jì)中,復(fù)選框組不如它的同類 ?? 多行選擇框那樣流行。它們基本上做的是同一件事,即選擇映射到單一 name 屬性的一組選項(xiàng)。當(dāng)在組中使用時(shí),復(fù)選框執(zhí)行的功能實(shí)際與多行選擇框一樣,但是它們占據(jù)的屏幕空間更多。當(dāng)希望用戶在選擇一個(gè)或多個(gè)選項(xiàng)之前能夠看到所有選項(xiàng)的時(shí)候,這會(huì)很有好處。
雖然在選項(xiàng)不多的時(shí)候,多行選擇框通常提供更好的觀感,但是當(dāng)選擇框必須動(dòng)態(tài)呈現(xiàn)而且包含預(yù)選功能時(shí),對(duì)企業(yè)應(yīng)用程序來說復(fù)選框組會(huì)是更好的選擇。幸運(yùn)的是,使用 Struts 框架可以很容易地創(chuàng)建動(dòng)態(tài)復(fù)選框組。
在這篇文章中,我將介紹一個(gè)簡單的訣竅:用 Struts 的 <html:multibox/> 和 <logic:iterate/> 標(biāo)記在應(yīng)用程序的視圖層呈現(xiàn)大量條目,在本例中是 Java™ Server Page(JSP)。
我先從使用復(fù)選框元素顯示簡單的 String[] 數(shù)組開始,數(shù)組中包含喜瑪拉雅山的頂峰高度。然后,我將創(chuàng)建另外一個(gè) String[] 數(shù)組,包含 selectedMountains ,代表已經(jīng)選中的復(fù)選框。復(fù)選框的預(yù)選情況會(huì)在兩個(gè)數(shù)組的交叉中產(chǎn)生。如果 selectedMountains 的初始數(shù)組為空,那么所有復(fù)選框最初都會(huì)顯示為未選中。
請(qǐng)參閱 下載 獲得完整的示例源代碼。應(yīng)當(dāng)擁有跟隨本文所需要的每樣?xùn)|西。如果需要下載 Struts 框架,請(qǐng)參閱 參考資料。
創(chuàng)建動(dòng)態(tài)復(fù)選框
創(chuàng)建動(dòng)態(tài)復(fù)選框的訣竅包含三個(gè)主要部分:
一個(gè)表單 bean,容納復(fù)選框的 String[] 數(shù)組和表示選中復(fù)選框的 String[] 數(shù)組。一個(gè) JSP,帶有一個(gè)表單,在需要的時(shí)候顯示復(fù)選框。一個(gè)簡單的 Action 類,從表單頁面轉(zhuǎn)到顯示頁面。 請(qǐng)注意 “Himalayas” 示例非常簡單。用來填充復(fù)選框的字段應(yīng)當(dāng)來自更復(fù)雜的模型,比如這樣的模型,它能夠標(biāo)識(shí)用戶,并選擇要顯示的字段,然后把業(yè)務(wù)對(duì)象認(rèn)為需要的選項(xiàng)預(yù)先選中。我采用簡單的模型是為了更好地演示 Struts 的用戶界面功能。代碼示例使用 JSP 腳本語言是為了表示清楚。
第 1 步. 創(chuàng)建表單 bean
我先從創(chuàng)建 Struts 表單 bean 開始,它包含填充復(fù)選框所需要的信息。請(qǐng)注意清單 1 中的 TestForm.java 包含了兩個(gè)示例 String[] 數(shù)組變量的 getter 和 setter。數(shù)組 mountains 代表示例復(fù)選框的 全部選項(xiàng),數(shù)組 selectedMountains 代表預(yù)選的在瀏覽器中顯示為選中的元素。
除了代表初始選中的復(fù)選框,selectedMountains 還代表處理表單時(shí),由用戶選中的復(fù)選框。(它只代表最終選中的元素。)當(dāng)請(qǐng)求頁面時(shí),會(huì)顯示復(fù)選框。當(dāng)我在它們之間迭代時(shí),與 selectedMountains 匹配的復(fù)選框元素就是選中的元素。
清單 1 顯示了 TestForm.java 的完整代碼:
清單 1. TestForm.java
- package com.strutsrecipes;
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。