web页面回传checkbox的问题

问题原型:
     添加页面中有10个checkbox,用户选中了5个后提交
     修改页面中应显示10个checkbox,同时应该有5个已经被选中
 
详细实际问题:
    为了满足业务需要,从linux安装盘中的comps.xml中读取提供的服务所依赖的包
    显示在页面上,根据包的类型(default,mandatory,optional)决定显示的方法
    default默认选中,mandatory不提供选择,optional为用户可选
  

< c:choose >
  
< c:when  test ="${p.type == 'mandatory'}" >
    
< td >
     
< input  type ="checkbox"  name ="nodeRPMS"
    style
="VISIBILITY: hidden; "
    checked
="true"
    value
="<c:out value=" ${p.rpmName}" /> "/>
    
</ td >
  
</ c:when >

   
< c:when  test ="${p.type == 'default'}" >
    
< td >
      
< input  type ="checkbox"
       name
="nodeRPMS"   checked =true  
       
value ="<c:out  value=" ${p.rpmName}" /> "/>
    
</ td >
   
</ c:when >

  
< c:when  test ="${p.type == 'optional'}" >
    
< td >  
     
< input  type ="checkbox"  name ="nodeRPMS"
       value
="<c:out value=" ${p.rpmName}" /> "/>
    
</ td >
  
</ c:when >
</ c:choose >

在处理层,采用struts的form来接受,定义string [] nodeRPMs接受即可
接受后存在数据库里,然后读出来在显示在页面上

在修改页面,首先应该有全部的checkbox,同时用户选中的应该已经被打勾(这来自数据库读出的记录),经过中午的查找资料
才知道可以使用mutilbox解决这个问题

< c:choose >
  
< c:when test = " ${p.type == 'mandatory'} " >
    
< td >
      
< input type = " checkbox "  name = " nodeRPMS "
    style
= " VISIBILITY: hidden;  "
    
checked = " true "
    value
= " <c:out value= " $ {p.rpmName} " /> " />
   
</ td >
  
</ c:when >

  
< c:otherwise >
   
< td >
      
< html:multibox property = " nodeRPMS " >
      
< c: out  value = " ${p.rpmName} " />
      
</ html:multibox >     
   
</ td >
  
</ c:otherwise >
</ c:choose >


mutilbox会根据你读出的值来设定
 struts中的checkbox是单选的,它的值应该只有true和false或者yes no或者on off之分;
r如果希望使用一组可以多选的checkbox,在struts中的页面标签应该是html:multibox,它的用法:<html:multibox property="strArray" value="value1">或者
       <html:multibox property="strArray">value2</html:multibox>

真正载页面上使用时可能是这样:
<html:multibox property="strArray">a</html:multibox>
<html:multibox property="strArray">b</html:multibox>
<html:multibox property="strArray">c</html:multibox>

当然"strArray"一定是页面相对应的formbean中的一个属性,并且应该是数组:
private String[] strArray; //提供get set方法

这样,如果我们在页面上面选中了前两个,则strArray.length=2;strArray[0]里面的值是a,strArray[1]里面的值是b;
如果我们把form中的strArray设置为strArray[0]="b",strArray[1]="c",则转到页面之后,页面上只有后两项被选中
所以这样就可以解决问题了

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值