1.Checkbox的特性
在使用checkbox时,我发现不管checked里是否有值,在前端里这个复选框都会被打上钩
<input type="checkbox" name="hobby_hkj" value="唱歌" checked="ture">唱歌
<input type="checkbox" name="hobby_hkj" value="跳舞" checked="false">跳舞
<input type="checkbox" name="hobby_hkj" value="篮球" checked>篮球
<input type="checkbox" name="hobby_hkj" value="Rap" checked="">Rap
运行结果如下:
而此时我的数据库代码中爱好是为空的
所以在Checkbox中,只要写入了checked,前端中的复选框就会被打上勾。
2.如何在前端中获得获得checkbox的值并显示出来
在这里我们需要用到JSTL(JSP标签库)
首先,我们需要在进行登录时将数据库中hobby的值存入,以便进入修改个人信息页面时方便获取。(既然能写到这一步dao层以及User里的东西我就不做展示了)
第二部是在前端中来接受这个hobby的值(因为我数据库中hobby值用了横杠进行分隔,所以这里用split来分割), 这里的check1-4是放入checkbox中的
第三步是用forEach(循环) 如果hobbies中有唱歌/跳舞/篮球/Rap的存在,就把相应的check赋值为:checked。
第四步,在checkbox中加上对应的check1-4,这里利用到了上面的checkbox的特性。
相当于是:
<input type="checkbox" name="hobby_hkj" value="唱歌" checked >唱歌
<input type="checkbox" name="hobby_hkj" value="跳舞" checked >跳舞
<input type="checkbox" name="hobby_hkj" value="篮球" checked >篮球
<input type="checkbox" name="hobby_hkj" value="Rap" checked >Rap
最后一步,也相当于是收尾工作,我们需要在单击提交修改信息之后,在修改成功时将hobby2的再重新更新一下,不然的话我们只有数据库中更新了,前端显示页面是不会更新的。
3.总结
能写出这么笨的办法发到网上也完全是因为找遍了CSDN和百度都没有找到一个能看懂得答案,所以人还是得逼自己一把。
如果文中有错误的或者不足的地方,请联系博主修改,谢谢!