的取值与验证问题
程序员文章站
2022-03-03 08:12:59
...
我这个例子主要是得到从后台返回的结果反映在前台的checkbox上。
在后台action中首先应该有一个List,用于前天checkbox的迭代:
PropertyBean有propertyId和propertyName两个属性。另外一点需要注意的是在action中需要记得给propertyList set和get方法。要不然在前天就取不到值了。
因为property可能是多个值,所以保存在后台的就可能是1,2这种形式的。
我在这里是给propertyList设定了两个值,好让前台有数据可以迭代。
这一段代码有点关键,这个主要是在<s:checkboxList>中的value属性。
我来解释下这些属性的含义,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>验证是否选中的问题,只需要直接这样子写即可:
但是有点奇怪的是用这种方式不能获得checkboxlist的焦点,如果有知道的兄弟交流下...
在后台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的焦点,如果有知道的兄弟交流下...