隨筆-10  評論-22  文章-1  trackbacks-0

          常用的Struts標(biāo)簽庫有以下五大類:

          1.HTML Tag:

          用來創(chuàng)建能夠和Struts框架以及其它相應(yīng)的HTML標(biāo)簽交互的HTML輸入表單;

          如:<html:form></html:form>,<html:text/>,<html:password/>,<html:radio/>,<html:checkbox/>,<htmlmultibox>

          2.Bean Tag

          該標(biāo)簽庫包含的標(biāo)簽可以用來創(chuàng)建bean、訪問bean和訪問bean的屬性。

           如:<bean:write/>:用于將bean的屬性輸送到j(luò)sp頁面,<bean:define/>定義一個(gè)新的bean

          3.Logic Tag

          該標(biāo)簽庫包含的標(biāo)簽可以用來進(jìn)行邏輯判斷、集合迭代和流程控制。

          如:<logic:iterate/>:用來循環(huán)迭代,<logic:eaual/>:用來進(jìn)行邏輯判斷

          4.Nested:增強(qiáng)對其他Struts標(biāo)簽的嵌套使用能力

          該標(biāo)簽庫建立在前三個(gè)標(biāo)簽庫的基礎(chǔ)上,具有前三個(gè)標(biāo)簽庫的所有功能,只是允許標(biāo)簽間的嵌套。

          5.Template Tag

          隨著Titles框架包的出現(xiàn),此標(biāo)記已開始減少使用

          下面介紹幾個(gè)最常用的標(biāo)簽:

          <html:check box/>一般用于一個(gè)選項(xiàng)的復(fù)選框

          <html:multibox/>一般用于多個(gè)選項(xiàng)的復(fù)選框

          <bean:write name="user" property="username"/>等同于EL表達(dá)示:${user.username}

          <bean:define id="inter" name="user" property="interest" type="java.lang.String"/>定義一個(gè)bean

          <bean:message key=" " arg0=" "/> key 定義在資源文件中,args0[1,2]為參數(shù)

          <logic:iterate name="list" id="user"> 等同于JSTL的:<c:foeach item=${list} var="user"/>

          <logic:equal name="user" property="sex" value="0"/>等同于JSTL的:<c:when test=""/>

          <logic:empty />標(biāo)簽是用來判斷是否為空的。如果為空,該標(biāo)簽體中嵌入的內(nèi)容就會(huì)被處理

          <logic:empty name="listForm" property = "persons">
          <div>集合persons為空!</div>
          </logic:empty>

          1.下面給一個(gè)表單的完整代碼:

          <body>
              
          <center>
                  
          <html:form action="/user">
                  用戶名:
          <html:text property="user.username"></html:text><p/>
                  密碼:
          <html:text property="user.pwd"></html:text><p/>
                  性別:
          <html:radio property="user.sex" value=""></html:radio>
                      
          <html:radio property="user.sex" value=""></html:radio><p/>
                  城市:
          <html:select property="user.city">
                      
          <html:option value="">請選擇</html:option>
                      
          <html:option value="武漢">武漢</html:option>
                      
          <html:option value="上海">上海</html:option>
                      
          <html:option value="北京">北京</html:option>
                  
          </html:select><p/>
                  愛好:
          <html:multibox property="interest" value="看書"/>看書
                      
          <html:multibox property="interest" value="游戲"/>游戲
                      
          <html:multibox property="interest" value="睡覺"/>睡覺<p/>
                      
          <html:submit/><html:cancel/>
                  
          </html:form>
              
          </center>
              
          </body>

          使用html標(biāo)簽作為表單輸入,可以方便的使用驗(yàn)證框架即:<html:errors property="username">

          2.下面給一個(gè)顯示數(shù)據(jù)的代碼:

          <table align="center" border="1" width="600">
                  
          <caption>用戶注冊信息</caption>
                  
          <tr>
                      
          <td>用戶名</td>
                      
          <td>密碼</td>
                      
          <td>性別</td>
                      
          <td>城市</td>
                      
          <td>愛好</td>
                      
          <td colspan="2" align="center">操作</td>
                  
          </tr>
                  
          <logic:iterate name="list" id="user">
                  
          <tr>
                      
          <td><bean:write name="user" property="username"/></td>
                      
          <td><bean:write name="user" property="pwd"/></td>
                      
          <td><bean:write name="user" property="sex"/></td>
                      
          <td><bean:write name="user" property="city"/></td>
                      
          <td>
                          
          <bean:define id="interest" name="user" property="interest" type="java.lang.String"></bean:define>
                          
          <logic:iterate id="inter" collection="<%=StringUtil.stringChange2(interest)%>">
                              $
          {inter}
                          
          </logic:iterate>
                      
          </td>
                      
          <td><a href="del.do?userid=${user.userid}">刪除</a></td>
                      
          <td><a href="upd.do?userid=${user.userid}">修改</a></td>
                  
          </tr>
                  
          </logic:iterate>
              
          </table>

          作為顯示數(shù)據(jù),Struts標(biāo)簽并不比Jstl與EL方便,因此,本人更習(xí)慣用后者

          其實(shí)Struts標(biāo)簽的好處,并不是上面這些,而是它可利用ActionForm來填充數(shù)據(jù)

          比如我們在做頁面數(shù)據(jù)修改的時(shí)候,會(huì)讓當(dāng)前頁面數(shù)據(jù)顯示到顯示修改頁面,這樣利于客戶端修改

          以前我們這樣做的:根據(jù)id從數(shù)據(jù)庫查出,然后使用html的value屬性填充,現(xiàn)在有了Struts標(biāo)簽,就不需要那么麻煩了

          直接在Action里填充ActionForm的數(shù)據(jù)就搞定了

          public ActionForward upd(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response) 
          {
                  UserForm userForm 
          = (UserForm) form;
                  
          int userid = Integer.parseInt(request.getParameter("userid"));
                  UserInfo user 
          = biz.findUser(userid);
                  String[]interest 
          = StringUtil.stringChange2(user.getInterest());
                  
          //將用戶信息填充到ActionForm
                  userForm.setUser(user);
                  userForm.setInterest(interest);
                  
          return mapping.findForward("upd");
              }
          然后在修改頁面顯示,請往下看:
          <html:form action="/doupd">
                  用戶名:
          <html:text property="user.username"></html:text><p/>
                  密碼:
          <html:text property="user.pwd"></html:text><p/>
                  性別:
          <html:radio property="user.sex" value=""></html:radio>
                      
          <html:radio property="user.sex" value=""></html:radio><p/>
                  城市:
          <html:select property="user.city">
                      
          <html:option value="">請選擇</html:option>
                      
          <html:option value="武漢">武漢</html:option>
                      
          <html:option value="上海">上海</html:option>
                      
          <html:option value="北京">北京</html:option>
                  
          </html:select><p/>
                  愛好:
          <html:multibox property="interest" value="看書"/>看書
                      
          <html:multibox property="interest" value="游戲"/>游戲
                      
          <html:multibox property="interest" value="睡覺"/>睡覺<p/>
                      
          <html:submit value="修改"/>
                  
          </html:form>
          怎么樣,簡單方便吧,其實(shí)Struts標(biāo)簽還是有它的好處的。
          posted on 2009-03-14 23:47 獨(dú)孤行 閱讀(1600) 評論(1)  編輯  收藏 所屬分類: Struts

          評論:
          # re: Struts核心標(biāo)簽(原創(chuàng)) 2009-03-15 13:05 | 陽衡鋒
          好像界面層的標(biāo)簽還是自己封裝比較好,我現(xiàn)在的項(xiàng)目的,我就封裝了幾個(gè)標(biāo)簽。沒有花多少功夫,基本上只要封裝select radio checkbox 就可以了。其他的直接寫html+el反而比較好。  回復(fù)  更多評論
            

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 拉萨市| 金门县| 永春县| 水城县| 嘉禾县| 湟中县| 百色市| 神木县| 巴里| 湄潭县| 巴林右旗| 大冶市| 镇平县| 楚雄市| 阜平县| 志丹县| 大埔县| 汝南县| 诸暨市| 衡水市| 尼木县| 海阳市| 阳曲县| 什邡市| 漳州市| 和顺县| 北碚区| 高雄县| 资溪县| 冕宁县| 右玉县| 莲花县| 镇远县| 宣化县| 黄山市| 鄄城县| 新郑市| 龙门县| 松滋市| 来宾市| 木里|