最近在做一个小项目练手,使用了Struts2的标签库Checkboxlist,并且我把数据写死了,但是传进数据库的时候为空,请教各位大神指点下
<tr align="left">
<td width="252">姓 名<input type="text" name="yw.username" style="width:188px;height:20px;"/></td>
<td align="center">安装项目<s:checkboxlist name="tv.tvproject" list="{'数字电视','宽带网','互动电视'}" listKey="key" listValue="value"/>
</td>
</tr>
这是我的Action方法
public String execute(){
try {
ywDao.Addyewu(yw);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("成功了");
return "ok";
}
没有异常信息,插入数据都是正常的,就是这checkboxlist选中的选项数据没有传入数据库
name-定义标签名,用于接收画面上选中的复选框,故应与Action里定义的属性一致,且多为数组;
list-定义集合变量,用于输出复选框到画面上,一般在Action里定义一个List或Map属性;
listKey-如果在Action里定义的是一个List,则往往会在List里定义一个Bean,它只有两个属性,其中一个(比如id)就在这里设置;
如果在Action里定义的是一个Map,则Map的key就在这里设置;
listValue-如果在Action里定义的是一个List,则往往会在List里定义一个Bean,它只有两个属性,另外一个(比如name)就在这里设置;
如果在Action里定义的是一个Map,则Map的value就在这里设置;
value-用于回显画面上被选中的复选框,假如画面有输入检查,如果有错则返回原画面并显示出错信息,这时候就需要使用它。
一般把它设成和name一致就可以了。
其实这个标签倒没用过,实际项目中很少用这个,一般都是jstl的c标签,上面是对于这个s标签参数的介绍,我感觉你这个地方的错误在于你没有在action中定义list来存储 list="{'数字电视','宽带网','互动电视'}" listKey