上一篇Blog写了checkboxlist的format.
这次说一下<s:checkbox/>
写了个测试界面,
<s:checkbox name="checkbox" value="checkbox1"/>
<s:checkbox name="checkbox" value="checkbox2"/>
<s:checkbox name="checkbox" value="checkbox3"/>
在action中定义一个:
private String[] checkbox;
public void setCheckbox(String[] checkbox) { this.checkbox = checkbox; }
看起来是可以, 但其实... 这样是不可以的. <s:checkbox/> 生成的html中对于checkbox会生成两个element.
一个是checkbox, value永远是true/false
另外还会生成一个hidden.
不多说, View Source就可以看到.
既然这样不行, 接着有尝试了直接用html.
<input type="checkbox" name="checkbox" value="checkbox1"/>
<input type="checkbox" name="checkbox" value="checkbox2"/>
<input type="checkbox" name="checkbox" value="checkbox3"/>
Action不变, 嘿~!... 这结果就对了!
所以, 如果实在没办法, 还是尝试一下最原始的方法, 没坏处.

本文通过实践对比了Struts2框架中<s:checkbox/>标签与HTML原生checkbox的使用效果。发现Struts2的checkbox标签生成的HTML元素包含额外的隐藏字段,这可能导致后台接收数据时出现问题。而使用纯HTML的checkbox则能正常获取到预期的数据。


被折叠的 条评论
为什么被折叠?



