JAVA

          人生若只如初見,何事秋風悲畫扇。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            50 隨筆 :: 25 文章 :: 157 評論 :: 0 Trackbacks
          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          公告

            In life there are very rare chances that you'll meet the person you love and loves you in return. So once you have it don't ever let go, the chance might never come your way.

          常用鏈接

          留言簿(20)

          隨筆分類(55)

          隨筆檔案(50)

          文章分類(2)

          文章檔案(25)

          相冊

          JAVA

          友人鏈接

          實用查詢

          珍藏鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          在JSP中用到select列表框就如家常便飯般的常見!
          以下是我在JSP頁面中對此的一些心得(通常會用到Struts+Hebernate+Spring):
          我想大概有以下幾種方法可以在JSP中得到我們想要的select列表框
          1:通過使用HTML中使用普通的select定義

          <select name="select">
              
          <option value="1">aa</option>
              
          <option value="2">bb</option>
              
          <option value="3">cc</option>
          </select>

          當然這樣可以實現,但是一旦用到相關的DB操作時,代碼中的業務,持久化,顯示處理各部分的代碼就會全部混到一起.

          2:通過Struts的logic標簽

          <logic:iterate id="types" name="cglist" type="com.jbbis.netedu.common.dto.BaseCategoryDTO"> 
                                 
          <option value='<bean:write name="types" property="id"/>'> 
                                
          <bean:write name="types" property="name"/> 
                                
          </option>
                 
          </logic:iterate> 

          其中types代表了存放集合數據的一個句柄,在option中用到它.type是指你集合中的對象.在下面的option中的一些屬性值實際上就是指此對象中的字段.比如說property="id", property="name".logic:iterate中的name屬性一般是從session,request中得到的,所以對于cglist,很可能在你的action中,有如下的代碼:

          request.setAttribute("cglist",categorys);

          or

          session.setAttribute(
          "cglist",categorys);

          然后就是將其在bean:write標簽中輸出來.這種方法相比前一種對于DB操作顯然要方便,但是假如要在select中加入一些JS的話就比較麻煩了,比如要保存它上次的選擇,用JS來實現顯得有些麻煩!

          3:通過Struts的html:select標簽,將此標簽內置于html:form內(個人認為,最大的好處莫過于它可以自動保存上次的記錄了!).

          <html:select property="typeId" onchange="gotothenews(this.value)">
                              
          <html:optionsCollection property="typeIds" label="name" value="id"/>
              
          </html:select>

          typeId為你Struts的ActionForm中對應的一個屬性,typeIds為ActionForm中的一個對象數組.name,id均為此數組中對象的屬性.lable在optionsCollection表示在select中要顯示的內容,value則表示其對應的值.
          要注意的是此對象數組記得要全部初始化,比如說你定義的此對象數組若長度為7而你只實例化了6個,則會出現類似
          org.apache.jasper.JasperException: No bean specified
          的異常!
          此方法不但對DB操作方便,而且在對保存記錄方面也做得不錯呢.在Struts中JSP頁面中使用JS時,還老是出現一些意想不到的錯誤(不知道為什么).

          下次遇到了好的對策再貼上來......
          posted on 2006-03-07 21:23 Jkallen 閱讀(3634) 評論(2)  編輯  收藏 所屬分類: JEE學習

          評論

          # re: 談select列表框 2007-04-07 16:35 billy
          非常的不錯,我會經常的光顧!來到你這里可以學習東西,真的不錯!希望多談一些關于Spring方面的東西!  回復  更多評論
            

          # re: 談select列表框 2007-05-23 15:58 buty
          <html:select property="orgCode">
          <html:option value=""></html:option>
          <html:options collection="organizationList" labelProperty="orgCode" property="orgCode"/>
          </html:select>
          請問這段代碼中的兩個property分別對應的那哪個屬性?謝謝!!  回復  更多評論
            

          主站蜘蛛池模板: 靖宇县| 错那县| 边坝县| 南澳县| 大理市| 康乐县| 台中市| 祥云县| 柏乡县| 阿坝| 北流市| 稻城县| 乾安县| 阳新县| 洛浦县| 梅河口市| 正镶白旗| 萨嘎县| 龙井市| 泰宁县| 绩溪县| 绥化市| 观塘区| 探索| 房产| 桑日县| 淮阳县| 开平市| 安庆市| 闽侯县| 深泽县| 巴青县| 即墨市| 万安县| 堆龙德庆县| 郸城县| 宝鸡市| 贺兰县| 浙江省| 额敏县| 林西县|