posts - 70,comments - 408,trackbacks - 0

          Struts Html標(biāo)簽和標(biāo)準(zhǔn)的HTML標(biāo)簽功能相同,這里提倡在Struts應(yīng)用中使用Struts標(biāo)簽,這是因為這些標(biāo)簽可以和Struts框架的其他組件緊密的聯(lián)系起來,如比標(biāo)簽用來定義HTML表單,Struts能夠把這個表單中的數(shù)據(jù)自動映射到對應(yīng)的ActionForm中.下面對具體的標(biāo)簽進(jìn)行深度研究.首先研討一些基本的東東,我個人認(rèn)為不是很常用的,生成基本HTML元素的標(biāo)簽,這些標(biāo)簽和HTML元素對應(yīng),主要包括:

          1)生成元素,這個標(biāo)簽有一個lang屬性,用于顯示用戶使用的語言,設(shè)置衛(wèi)true的時候,標(biāo)簽將先根據(jù)存儲當(dāng)前HttpSession中的Locale對象來輸出網(wǎng)頁數(shù)用的語言,如果沒有HttpSession或者里面沒有Locale對象,就根據(jù)HTTP請求頭的屬性來輸出語言,如果HTTP請求頭中沒有,就根據(jù)默認(rèn)的Locale來輸出語言.

          2)生成元素,這個用于生成當(dāng)前網(wǎng)頁的絕對URL路徑.如果使用了這個標(biāo)簽,當(dāng)該網(wǎng)頁引用同一個應(yīng)用的其他網(wǎng)頁的時候,只需要給出相對于當(dāng)前網(wǎng)頁的相對URL路徑即可.

          3)生成Anchor元素,這個是超連接標(biāo)簽,感覺有一些好處可言,比如允許在RUL中以多種方法包含請求參數(shù).當(dāng)用戶瀏覽器關(guān)閉Cookie的時候,會自動重寫URL,把SessionID作為請求參數(shù)包含在URL中,用于跟蹤用戶的Session狀態(tài).它的主要屬性有三種,分別是forward指定全局轉(zhuǎn)發(fā)連接.href指定完整的URL連接.page指定相對于當(dāng)前網(wǎng)頁的RUL.

          4)生成用戶請求URI,用于輸出超連接中的URL部分,但它并不生成HTML

          元素.URI指的是URL中的協(xié)議,主機(jī)和端口以后的內(nèi)容.

          5)生成HTML元素,用于在HTML頁中嵌入圖片.page屬性指定當(dāng)前的URI.

          根據(jù)我個人的一些看法,感覺Struts確實很好,但是在好的東西也有一些不實用的地方,JAVA也是如此,以上方法我比較推薦標(biāo)簽,感覺這個標(biāo)簽有十分不錯的功效,下面闡述一下具體的使用方法:

          1)     創(chuàng)建全局轉(zhuǎn)發(fā)連接:首先在Struts配置文件中配置

            

          JSP頁面中引用:index

          2)     創(chuàng)建完整URL的連接,也就是說可以連接到其他的站點

          Action

          3)     從一個網(wǎng)頁連接到同一個應(yīng)用的另外一個網(wǎng)頁

          Action

          4)     URL或者RUI中包含請求參數(shù)的方法

          Action

          5)     URL或者URI中包含單個請求變量的方法

          pagemProperty>Action

          paramId屬性指定請求參數(shù)名,paramName屬性指定變量名稱,paramProperty指定變量衛(wèi)JavaBean的屬性.

          研討完了StrutsHtml標(biāo)簽庫的基本標(biāo)簽,下面開始研究一個重要的東東,Struts的表單標(biāo)簽以及它的子標(biāo)簽,單選按鈕,復(fù)選框,下拉列表等等,下面是詳細(xì)介紹:

          1)表單標(biāo)簽的action屬性來指定當(dāng)用戶提交表單后,處理用戶請求的組件,就是說在form里action屬性比如設(shè)置了一個in.do的,那么在配置文件中action元素的path屬性如果是/in,這就說明是這個action來接收form提交過來的數(shù)據(jù).這個感覺挺簡單,此外還需要知道name是設(shè)置表單名字,method是來設(shè)置請求方法,比如Get或Post.

          2)文本標(biāo)簽的property屬性指定字段的名字,它和ActionForm中的一個屬性匹配,這個屬于表單標(biāo)簽的一個子標(biāo)簽,可以把用戶填寫的值提交到具體的ActionForm中

          3)標(biāo)簽在表單中生成取消按鈕,當(dāng)用戶按下取消按鈕的時候,產(chǎn)生一個取消事件,這個時間由Action來捕獲,至于如何處理在Action類中的execute()方法編程實現(xiàn),主要用途是在用戶按了提交按鈕,請求沒發(fā)送過去又不想提交的時候,起到一個反悔作用.

          4)標(biāo)簽用來生成復(fù)位按鈕,類似以上的取消按鈕這些實現(xiàn)復(fù)位,取代了HTML代碼.

          5)標(biāo)簽生成提交按鈕.使用方法和取消,復(fù)位一樣都是這樣寫代碼的:

          提交.

          6)標(biāo)簽在表單上生成隱藏字段,用于在表單上存放不希望讓用戶看到或者不允許修改的信息,它的屬性類似文本標(biāo)簽,property和ActionForm中的具體屬性對應(yīng).如果想要在表單想顯示某個值,而且不希望用戶修改,可以用這個方法.

          7)標(biāo)簽在表單上生成標(biāo)準(zhǔn)的HTML檢查框,比如ActionForm中的屬性是boolean類型只能有2個值,就可以在表單中使用這個標(biāo)簽來表示.主要通過property屬性來設(shè)置對應(yīng)的ActionForm屬性,還有一個value屬性,用來設(shè)置用戶選中檢查框的值,默認(rèn)值是true,就是說當(dāng)用value=false的時候如果用戶沒選擇這個檢查框,就把ActionForm的屬性設(shè)置衛(wèi)true,為了檢查框能夠正常工作,必須在ActionForm的reset()方法中對其復(fù)位,在value屬性為true的時候,必須在reset()方法中把對應(yīng)的屬性設(shè)置為false.

          8)標(biāo)簽和差不多,區(qū)別就在于它可以生成復(fù)選框.它的性能比更加靈活,可以動態(tài)的決定被選中復(fù)選框的數(shù)目,只要property屬性相同,而value屬性不一樣,就可以和ActionBean的同一個數(shù)組對應(yīng).此外checkbox只能和blooean類型的屬性對應(yīng),而multibox則沒有限制.

          9)標(biāo)簽表示單選按鈕,多個標(biāo)簽可以組合使用.

          10)標(biāo)簽生成下拉列表或多選列表,重要的屬性是size屬性指定每次網(wǎng)頁上顯示的可選的項目數(shù)量.multiple屬性指定是否支持多項選擇,如果設(shè)置為true表示多選列表,默認(rèn)為false.property屬性于ActionForm中的某個屬性對應(yīng),這個屬性用來存儲用戶在列表上選中的值.在單選的情況下,ActionForm的對應(yīng)屬性定義為簡單類型,不能是數(shù)組.在多選的情況下類型是數(shù)組.

          以上是對StrutsHtml標(biāo)簽庫的Form系列標(biāo)簽以及子標(biāo)簽的簡單闡述,這些標(biāo)簽不一定都常用,所以了解即可,能掌握常用的幾個標(biāo)簽就OK了.下面研究一下文件上傳,是指通過用戶瀏覽把用戶本地的文件傳到Web服務(wù)器標(biāo)簽提供了從Html表單中上傳文件的功能.這個標(biāo)簽也是Form標(biāo)簽的子標(biāo)簽所以必須嵌套在中,而且的method屬性必須設(shè)置為Post.enctype編碼屬性必須設(shè)置為multipart/form-data.而且它的property屬性必須設(shè)置和ActionForm中的Flie類型的屬性對應(yīng).如果property=”file”則ActionForm中必須要設(shè)置private File file;屬性,而且提供相應(yīng)的get/set方法.然后通過Action來完成接收上傳文件的功能,首先創(chuàng)建一個讀取用戶上傳文件的InputStream流對象,然后創(chuàng)建一個把上傳數(shù)據(jù)寫到目標(biāo)文件中的OutputStream對象,接下來通過一個馴化把數(shù)據(jù)從源文件寫到目標(biāo)文件中,上傳就實現(xiàn)了.

          標(biāo)簽用于輸出錯誤消息,在request和session范圍尋找ActionMessages或者其子類ActionErrors集合對象.在從ActionMessages集合對象中讀取ActionMessage對象,把ActionMessage對象包含的錯誤消息文本顯示在網(wǎng)頁上.至于具體的錯誤文本消息存放在ResourceBundle中,而且標(biāo)簽?zāi)茏R別錯誤文本中的HTML元素,例如等等.標(biāo)簽可以存放在網(wǎng)頁的任何地方,也可以在表單內(nèi).因為它輸出錯誤和它在網(wǎng)頁的位置無關(guān).它的具體屬性是.1)name:指定ActionMessages對象的屬性key,標(biāo)簽處理類根據(jù)這個key來家查request或session范圍的ActionMessages集合對象.2)property:指定消息屬性,如果不設(shè)置會顯示ActionMessages集合對象中所有的消息對象ActionMessage.3)bundle:指定ResourceBundle如果這個沒設(shè)置,將從應(yīng)用中默認(rèn)的ResourceBundle中獲取消息.
             
          標(biāo)簽和標(biāo)簽有些類似,也能夠在網(wǎng)頁中輸出消息,具體的屬性是:1)name:指定ActionMessages對象的屬性key,標(biāo)簽處理根據(jù)這個key來檢索request或者session范圍內(nèi)的ActionMessages對象.2)message:指定消息的來源,如果是true則從request或者session范圍內(nèi)檢索出屬性key為Globals.MESSAGE_KEY的具體的ActionMessages對象.3)id:用來命名從消息集合中檢索出每個ActionMessages對象,它和標(biāo)簽的name屬性匹配.
             
          Struts的標(biāo)簽庫固然很好,但是有些是需要用的,有些也是不用也罷的,所以可以根據(jù)實際情況進(jìn)行研究,不過感覺還是都了解一下的好,不一定都要會用,但是起碼都能看懂就OK了呵呵^_^ (網(wǎng)友們的支持,是我繼續(xù)寫技術(shù)文章的動力!)

          posted on 2005-10-30 19:53 我心依舊 閱讀(10004) 評論(6)  編輯  收藏

          FeedBack:
          # re: Struts標(biāo)簽-Html(原創(chuàng))
          2006-03-01 21:45 | tomcat
          Struts的標(biāo)簽庫有些功能實現(xiàn)不是很方便,但如果和JSTL配合使用就爽多了。  回復(fù)  更多評論
            
          # re: Struts標(biāo)簽-Html(原創(chuàng))
          2006-11-30 13:48 | eqrw
          asdffs  回復(fù)  更多評論
            
          # re: Struts標(biāo)簽-Html(原創(chuàng))
          2007-01-12 14:05 | 問天
          歡迎光臨
            回復(fù)  更多評論
            
          # re: Struts標(biāo)簽-Html(原創(chuàng))
          2008-04-14 13:29 | ere
          dfdfs  回復(fù)  更多評論
            
          # re: Struts標(biāo)簽-Html(原創(chuàng))
          2008-04-14 13:31 | ere
          為什么我在界面上添加<html:html>時候,頁面就看不到了,這是什么原因呢?
          我在Action里面也指定它的路徑了,就是顯示不出頁面,還請高手指教  回復(fù)  更多評論
            
          # re: Struts標(biāo)簽-Html(原創(chuàng))
          2008-06-23 11:41 | chenhu1008@gmail.com
          我覺得文章倒是可以,但是錯別字實在是太多了,看的時候要連猜加蒙才能理解。希望以后能夠改正這個習(xí)慣。  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 普宁市| 疏勒县| 闸北区| 大冶市| 乳山市| 明星| 长岛县| 彭山县| 策勒县| 崇左市| 泾源县| 霍林郭勒市| 新疆| 阳谷县| 秦安县| 竹北市| 临洮县| 汶川县| 开封县| 齐齐哈尔市| 佛坪县| 荔浦县| 嘉兴市| 稷山县| 绥江县| 濉溪县| 拉萨市| 泰兴市| 科尔| 浠水县| 江孜县| 内丘县| 界首市| 柳州市| 白玉县| 镇巴县| 陇西县| 黔西| 肥乡县| 斗六市| 密云县|