您现在的位置是:首页 >

html select标签 Struts 中 html:options 的使用

火烧 2022-07-09 23:39:13 1056
Strut 中 html:o tio 的使用   :o tio 是Strut 中比较复杂的一个tage li 用法灵活 但是Sturt 提供的源码exerci e tagli 中没有提出常用j +Ac
html select标签 Struts 中 html:options 的使用

Struts 中 html:options 的使用  

  :options是Struts中比较复杂的一个tage lib 用法灵活 但是Sturts提供的源码exercise taglib中没有提出常用jsp+ActionForm这样形式的最直接的总结 现从中总结如下 分两种情况 数组和Collection     需求 要达到   <select name= beanCollectionSelect multiple= multiple size= >  <option value= value >Label </option>  <option value= value selected selected >Label </option>  <option value= value >Label </option>  <option value= value selected selected >Label </option>  <option value= value >Label </option>  <option value= value selected selected >Label </option>  <option value= value >Label </option>  <option value= value >Label </option>  <option value= value >Label </option>  <option value= value >Label </option></select>    要实现上述效果 需要两步   第一 设置ActionForm   也分两小步 第一小步必须在ActionForm中 有一句  private Collection beanCollection;  public Collection getBeanCollection();    Collection beanCollection要确保是一个实现 如ArrayList 如果不是则会报No collection found的错误 Struts的最大不方便就是一旦出问题 定位很难 不知道什么地方使用错误 或忘记设置什么了     因为前面需求中option的value值和label值不一样 那么在beanCollection中保存的就是一个value和label组成的对象 名为LabelvalueBean 在LabelvalueBean中有两个属性value和label     在程序某个地方要为beanCollection赋值 如     Vector entries = new Vector( );    entries add(new LabelvalueBean( Label value ));       entries add(new LabelvalueBean( Label value ));       entries add(new LabelvalueBean( Label value ));       entries add(new LabelvalueBean( Label value ));       entries add(new LabelvalueBean( Label value ));        entries add(new LabelvalueBean( Label value ));         entries add(new LabelvalueBean( Label value ));        entries add(new LabelvalueBean( Label value ));        entries add(new LabelvalueBean( Label value ));        entries add(new LabelvalueBean( Label value ));    然后执行setBeanCollection(entries);  这样ActionForm中的beanCollection算有值了   第二小步 需要设置Selected selected有两种 单选和多选   在ActionForm中必须有     private String singleSelect = Single ;    public String getSingleSelect()   {     return (this singleSelect);    }    public void setSingleSelect(String singleSelect)   {     this singleSelect = singleSelect;    }    或多选 多选必须是数组     private String[] beanCollectionSelect = { value value                           value };   public String[] getBeanCollectionSelect() {    return (this beanCollectionSelect);  }    public void setBeanCollectionSelect(String beanCollectionSelect[])   {      this beanCollectionSelect = beanCollectionSelect;    }    第二 在Jsp中写入tang lib语句如下     <:select property= beanCollectionSelect size= multiple= true >      <:optionsCollection name= testbean property= beanCollection />     </:select>    其中testbean是ActionForm的名称     以上是:options的Collection解决方案 如果option值很少 简单地可以实现为数组 两步   第一 在ActionForm中     private String values[] =     { Magazine Journal News Paper Other };    private String labels[] =     { L Magazine L Journal L News Paper L Other };    private String selected = Magazine ;    public String getSelected()  {     return selected;    }    public void setSelected(String selected)  {     this selected = selected;    }    public String[] getvalues()  {     return values;    }    public void setvalues(String[] values)  {   this values = values;    }    public String[] getLabels()  {     return values;    }    public void setLabels(String[] labels)  {     this labels = labels;    }    第二步在jsp中     <:select property= selected >        <:options name= testbean property= values labelProperty= label />   </:select>    Struts标签库的使用还是需要小心 不必完全使用Struts的标签库 个人感觉Struts这种替代Html语句的标签库有一种牵强附会 给使用者掌握带来难度 使用者除熟悉外 还必须理解Struts的对应标签库用法 而且这种调试出错 问题也无法准确定位 总是抽象地告诉你 no bean 或no form lishixinzhi/Article/program/Java/ky/201311/28412  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码