<s:checkboxList>的取值与验证问题

我这个例子主要是得到从后台返回的结果反映在前台的checkbox上。
在后台action中首先应该有一个List,用于前天checkbox的迭代:

private List<PropertyBean> propertyList;

PropertyBean有propertyId和propertyName两个属性。另外一点需要注意的是在action中需要记得给propertyList set和get方法。要不然在前天就取不到值了。

private RoomBean room = new RoomBean();//记得set,get方法
room.setPropertyId("1,2");

因为property可能是多个值,所以保存在后台的就可能是1,2这种形式的。

PropertyBean p1 = new PropertyBean();
p1.setPropertyId("1");
p1.setPropertyName("pname1");

PropertyBean p2 = new PropertyBean();
p2.setPropertyId("2");
p2.setPropertyName("pname2");
propertyList.add(p1);
propertyList.add(p2);

我在这里是给propertyList设定了两个值,好让前台有数据可以迭代。

String pro[];
pro=room.getPropertyId().split("[,]+");
List list = new ArrayList();
for (int i = 0; i < pro.length; i++) {
list.add(pro[i]);
}
request.setAttribute("propertyId", list);

这一段代码有点关键,这个主要是在<s:checkboxList>中的value属性。

<s:checkboxlist list="propertyList" label="设施" listKey="propertyId" listValue="propertyName" name="room.propertyId" value="#request.propertyId"></s:checkboxlist>

我来解释下这些属性的含义,list就是我们在后天定义的list的名字,lable是一个标签,这行代码相当于一个tr里面放了两个td,一个td放lable,一个td放checkbox,然后listkey和listvale分别代表list中bean的属性。listvalue是显示在页面上的值。而name值则是为了绑定后台的属性值room,而propertyId是room的一个属性值。value值则是为了使后台返回的数据,如1,2这样的数据与前台进行匹配,如果符合则选中。这个是在request范围中把propertyId取出来。
最后在说一下关于<s:checkboxList>验证是否选中的问题,只需要直接这样子写即可:

var value = document.getElementsByName('room.propertyId');
var length = value.length;
var aa = "";
alert(length);
for(var i = 0 ;i<length;i++){
if(value[i].checked == true){
aa = "哈哈";
}
}
if(aa==""){
alert("请选择");
}

但是有点奇怪的是用这种方式不能获得checkboxlist的焦点,如果有知道的兄弟交流下...
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值