JSP Checkboxlist标签传值到数据库问题

最近在做一个小项目练手,使用了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";
}

第1个回答  2014-02-10
可能原因有很多,首先,你那报错了没有,其次假若没有报错,看看后台有没有打印sql语句,或者是你把sql语句放在mysql的数据库中去执行一下看看能不能成功,如果不成功那就是你的sql有问题,排除这个情况后,那你贴出ywDao.Addyewu(yw)中addyewu的方法,我看看里面怎么写的,你自己也可以跟进去,看看内部怎么执行的追问

没有异常信息,插入数据都是正常的,就是这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

相似回答