精典的ASP传奇的J2EE新生的NETFTP服务器服务器安全WINDOWSB/S 模式WEB安全WAP世界动态网站推广宣传
空间服务器数据库技术邮局服务器站長工具硬设与组建Alexa专题DHTML项目管理WEB标准电脑硬件
病毒知识电脑使用布线协议接入交换路由局域网无线网络网络规划
Visual BasicVisual C/C++MssqlMySqloracleSybase 存在安全风险进程系统进程列表应用程序进程列表其它进程列表
黑客编程漏洞分析本地提权免杀技术脚本漏洞数据库注入安全防护内网渗透加密解密工具使用
WAP技术WAP入门
 您的位置:   >> 相关知识 >> 开发技术 >> 传奇的J2EE >>

Struts中html:options的使用

合金网络科技

 
  添加日期:2005-9-8 点击次数:153次  
   
 

html:options是Struts中比较复杂的一个tage lib,用法灵活,但是Sturts提供的源码exercise taglib中没有提出常用jsp+ActionForm这样形式的最直接的总结,现从中总结如下,分两种情况:数组和Collection。

需求,要达到:



<s elect name='beanCollectionSelect' multiple='multiple' size='10'>
<o ption value='Value 0'>Label 0</option>
<o ption value='Value 1' selected='selected'>Label 1</option>
<o ption value='Value 2'>Label 2</option>
<o ption value='Value 3' selected='selected'>Label 3</option>
<o ption value='Value 4'>Label 4</option>
<o ption value='Value 5' selected='selected'>Label 5</option>
<o ption value='Value 6'>Label 6</option>
<o ption value='Value 7'>Label 7</option>
<o ption value='Value 8'>Label 8</option>
<o ption value='Value 9'>Label 9</option>
</s elect>


要实现上述效果,需要两步:
第一:设置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(10);
entries.add(new LabelValueBe('Label 0', 'Value 0'));            
entries.add(new LabelValueBean('Label 1', 'Value 1'));            
entries.add(new LabelValueBean('Label 2', 'Value 2'));            
entries.add(new LabelValueBean('Label 3', 'Value 3'));            
entries.add(new LabelValueBean('Label 4', 'Value 4'));            
entries.add(new LabelValueBean('Label 5', 'Value 5'));           
entries.add(new LabelValueBean('Label 6', 'Value 6'));            
entries.add(new LabelValueBean('Label 7', 'Value 7'));           
entries.add(new LabelValueBean('Label 8', 'Value 8'));           
entries.add(new LabelValueBean('Label 9', 'Value 9'));

然后执行setBeanCollection(entries);
这样ActionForm中的beanCollection算有值了。
第二小步,需要设置Selected,selected有两种,单选和多选:
在ActionForm中必须有:
private String singleSelect = 'Single 5';    
public String getSingleSelec() {
        return (this.singleSelect);    
}    
public void setSingleSelect(String singleSelect) { 
       this.singleSelect = singleSelect;    
}

或多选,多选必须是数组:
 private String[] beanCollectionSelect = {
       'Value 1', 'Value 3','Value 5' };   

 public String[] getBeanCollectionSelect() { 
       return (this.beanCollectionSelect);    }    

public void setBeanCollectionSelect(String beanCollectionSelect[]) { 
       this.beanCollectionSelect = beanCollectionSelect;    }

第二:在Jsp中写入tang lib语句如下:
<h tml:select property='beanCollectionSelect' size='10' multiple='true'>        
<h tml:optionsCollection name='testbean' property='beanCollection'/>  </h tml:select>

其中testbean是ActionForm的名称。

以上是html: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中:
<h tml:select property='selected' >           
 <h tml:options name='testbean' property='values' labelProperty='label'/>      
</h tml:select>
精典的ASP精选TOP
· 利用ADODB.Stream 防盗链
· Adodb.Stream说明手册
· 采集需要登录
· ASP 判断远程图片是否存在
· 在ServerXMLHTTP组件中使用代理服务器
· 用XMLHTTP通过代理服务器从服务提取数据的一些问题
· objXML.readystate的值
· 互联网HTTP连接等出错代码大全
· 利用XMLHTTP实现的二级连动Select
· 利用 xmlhttp 分块上传文件
 
服务器安全点击TOP
· 新云最新漏洞总结篇
· 各类网站的默认数据库和密码
· Windows Server2003 防木马权限设置IIS服务器安全配置整理
· 针对ASP网站的Win 2003硬盘安全设置
· IIS 6 的PHP 最佳配置方法
· 利用SA.exe 将Iusr_victim克隆为Administrator
· Cmd模式下的入侵技术大全
· 破解网页代码加密
· SERV-U 6.4提权方法,通杀SERV-U版本
· 新云网站管理系统文件注入漏洞
 
硬设与组建点击TOP
· 从头到尾教你组建小型局域网20
· 从头到尾教你组建小型局域网19
· 从头到尾教你组建小型局域网18
· 从头到尾教你组建小型局域网17
· 从头到尾教你组建小型局域网16
· 从头到尾教你组建小型局域网15
· 从头到尾教你组建小型局域网14
· 从头到尾教你组建小型局域网13
· 从头到尾教你组建小型局域网12
· 从头到尾教你组建小型局域网11
 
病毒知识点击TOP
· 不再重装 手动清除顽固病毒AutoRUN
· 木马静态变动态 DLL木马程序大揭秘
· 详解一个很牛X的网马
· 一个网马
· Trojan-Downloader.Win32.Delf.bab
· 抓了一个AJAX的网马
· 迅雷5 最新0day利用程序
· 自动关掉270种杀毒软件
· RealPlayer 最新网马
· 五个反弹型后门的源代码
 
WINDOWS点击TOP
· 4【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 3【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 2【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· 1【系统知识】常见文件扩展名及简要说明!!! ==超详尽==
· Capture an HTML document as an image
· 如何给eWebEditor编辑器加上运行代码框功能
· 给CuteEditor5增加了高亮代码显示功能
· CuteEditor6.0使用配置心得体会
· 关于IE插件的CLSID问题
· 对开发的程序(制作CAB)进行签名,并允许网站中使用
  "凌风微型文章系统",针对"搜索引擎"完美设计,提高"搜索引擎"对网站容量,质量的评估值,"扁平化,转静态 ..."