有2个checkbox具体有相同的NAME属性,页面加载时先从后台数据库读取值并根据值设置哪个默认被选中,生成前台HTML代码如下:
<form action="update.action">
订座: <input type="checkbox" name="resbook" id="resbook" value="订座" checked/>
送餐: <input type="checkbox" name="resbook" id="resbook" value="送餐" />
.....
</form>
在Action里有String[] resbook数组Action返回jsp,显示resbook的值如上这种情况如果我取消"订座"的钩,提交后为什么在jsp返回页面里值还是“订座”?如果我只选择一个,双2个全选返回值总是正确的。如何解决,谢谢!

解决方案 »

  1.   

    这两个可以同时选中么?还是值可以选一个? 如果只能选一个就用<s:radio>,如果可以多选可以只用一个checkbox啊,为什么用两个呢? 
      

  2.   

    html 中 可以有相同的ID么?
      

  3.   

    LZ出错的原因是因为你的两个checkbox的name都是resbook, 当struts2从action返回到你的页面的时候他会将action中对应的属性名的值赋给页面中和他属性名相同的标签,所以你弄10个名为resbook的标签的话,10个都将会是一样的,这个完全可以用一个解决的啊,为什么 用两个呢,要是用两个那复选框还有他存在的意义么?
      

  4.   

    input type="checkbox"这样的传递的数据改变时,在struts2不能识别,建议你还是使用隐藏域传递数据
      

  5.   

    使用<s:checkboxlist /><s:checkboxlist name="resbook" list="#{'订座':'订座'', '送餐':'送餐'}"/>
      

  6.   

    你这种情况推荐使用楼上的办法
    就是利用struts的gui组件<s:checkboxlist /> 
      

  7.   

    <input type="checkbox" name="resbook" id="resbook" value="订座" <s:if test="对应的beanq名.resbook== '订座'">checked</s:if> />
    这样做不可以吗?