<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 2 Trackbacks
    struts 的radio標(biāo)記的增強(qiáng)

    寫struts的html標(biāo)記的人不知道是不是對(duì)html標(biāo)記不熟,寫出來(lái)的標(biāo)記怎么怪里怪氣的,id標(biāo)記被用來(lái)綁定bean了,我還以為不支持html的id屬性了,不小心看到org.apache.struts.taglib.html.BaseHandlerTag的prepareStyles()方法里面,居然赫然寫著:
            if (styleId != null) {
                styles.append(" id=\"");
                styles.append(getStyleId());
                styles.append("\"");
            }
    原來(lái)要用styleId屬性來(lái)定義html的id屬性,不看源碼你敢這么猜嗎,怎么看styleId都象是個(gè)樣式有關(guān)的屬性嘛,要定義html的id屬性,如果不能用id至少也應(yīng)該叫HTMLID或者tagId之類的名字嘛。ok,源碼都看了,那我們用styleId也成,可是看看radio標(biāo)記就實(shí)在是笨了:
        public int doAfterBody() throws JspException {
            if (this.bodyContent != null) {
                String value = this.bodyContent.getString().trim();
                if (value.length() > 0) {
                    this.text = value;
                }
            }
            return (SKIP_BODY);
        }
    你說(shuō)我把文字括到<html:radio>text</html:radio>標(biāo)記中間為的是什么?當(dāng)然這個(gè)文字要和radio綁定啦。可是上面的代碼居然直接把文字往生成的<input type="radio"...>標(biāo)記后面一丟了事,有這么不負(fù)責(zé)的嘛?
    還好咱java和html都還懂一點(diǎn)。自己寫個(gè)類:
    package com.reuse.common.web.tag;
    import javax.servlet.jsp.JspException;
    public class RadioTag extends org.apache.struts.taglib.html.RadioTag{
      public int doAfterBody() throws JspException {
        if (this.bodyContent != null) {
            String value = this.bodyContent.getString().trim();
            if (value.length() > 0) {
                this.text = "<label for=\""+getStyleId()+"\" "+
                    prepareEventHandlers()+
                    prepareStyles().replaceAll(" id=\""+getStyleId()+"\"","")+
                    ">"+value+"</label>";
            }
        }
        super.setStyleId(null);
        return (SKIP_BODY);
      }
      static int idCount=0;
      public int doStartTag() throws JspException {
        if (super.getStyleId() == null){
          super.setStyleId("RadioTag_"+ ++idCount);
         }
        return super.doStartTag();
      }
    }
    然后再在WEB-INF下面找到struts-html.tld,把
    <tagclass>org.apache.struts.taglib.html.RadioTag</tagclass>
    改為
    <tagclass>myPackage.RadioTag</tagclass>

    這下整個(gè)世界都清涼多了。回家過(guò)五一了,下次再對(duì)checkbox開刀吧


    struts 的checkbox標(biāo)記的增強(qiáng)

    五一過(guò)完,checkbox也開了刀了:

    package com.reuse.common.web.tag;

    import javax.servlet.jsp.JspException;
    public class CheckboxTag
        extends org.apache.struts.taglib.html.CheckboxTag
    {
      public int doAfterBody() throws JspException {
      if (this.bodyContent != null) {
          String value = this.bodyContent.getString().trim();
          if (value.length() > 0) {
              this.text = "<label for=\""+getStyleId()+"\" "+
                  prepareEventHandlers()+
                  prepareStyles().replaceAll(" id=\""+getStyleId()+"\"","")+
                  ">"+value+"</label>";
          }
      }
      super.setStyleId(null);
      return (SKIP_BODY);
    }
    static int idCount=0;
    public int doStartTag() throws JspException {
      if (super.getStyleId() == null){
        super.setStyleId("CheckBoxTag_"+ ++idCount);
       }
      return super.doStartTag();
    }

    }

    posted on 2005-05-18 14:20 emu 閱讀(1526) 評(píng)論(2)  編輯  收藏 所屬分類: java技術(shù)

    評(píng)論

    # re: struts 的radio和checkbox標(biāo)記的增強(qiáng) 2005-10-21 14:00 wzy
    現(xiàn)在我都放棄了struts 的標(biāo)簽 鬼理鬼氣的
    用velocity   回復(fù)  更多評(píng)論
      

    # re: struts 的radio和checkbox標(biāo)記的增強(qiáng) 2006-01-11 03:47 寒暮云
    痛苦中......  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 在线观看永久免费| 大地资源中文在线观看免费版| 99久久国产热无码精品免费| 亚洲第一福利视频| 久久精品成人免费看| 亚洲国产a∨无码中文777| a毛片免费观看完整| 亚洲码国产精品高潮在线| a级毛片毛片免费观看永久| 亚洲av永久无码精品古装片| a级毛片在线免费观看| 久久精品国产亚洲AV麻豆~| 午夜影院免费观看| 亚洲人成在线电影| 真人做人试看60分钟免费视频| 亚洲国产91在线| 国产成人免费a在线资源| 一级毛片免费在线播放| 亚洲精品国产精品乱码在线观看| 国产麻豆成人传媒免费观看| 日韩精品一区二区亚洲AV观看| 国产成人免费午夜在线观看| 2020亚洲男人天堂精品| 日本免费的一级v一片| 一本大道一卡二大卡三卡免费| 亚洲女久久久噜噜噜熟女| 国产国产人免费视频成69堂| 国产精品亚洲lv粉色| 国产成人亚洲精品影院| 99热精品在线免费观看| 亚洲熟女www一区二区三区| 亚洲第一黄色网址| 日韩免费无码一区二区三区| 亚洲黄色激情视频| 亚洲精品动漫人成3d在线 | 精品在线免费观看| 亚洲国产精品免费在线观看| 日韩高清免费在线观看| 两个人www免费高清视频| 7777久久亚洲中文字幕| 亚洲色欲久久久综合网东京热 |