好久没有进博客了写东西了。 昨天晚上在写项目时发现一个问题, 如果在页面有多个同名复选框, 而使用Struts2属性模型取值时, 发现一个问题, 如果将这些复选框提交到Action中时, 只要页面上有选中的复选框, 在Action中是没有任何问题的, 但如果您在页面上把全部的选项都取消时,在取消之前有一个被选中或者一组被选中时,将表单提交后, 最后的一个或者一组选中checkbox值仍然会被提交,找了一个晚上,也没有找到这个问题所在。在网上大多都是说在使用struts的UI标签时会有这样的问题,但我的项目是使用的原生的HTML标签,也发生了同样的问题。一开始不以为自己的程序上什么时候有问题,找了大半个晚上,都没有找到。就休息了。
到了第二天早上,继续查找问题,在另一个网友的博客发现,说是struts2 拦截器的问题,而我也没有使用拦截器,但借鉴了他的解决方法,解决了这个问题。
这个问题建议直接使用request.getParameterValues("属性名")来获取,然后再自己处理。
其实这个问题我还继续思考了很久,这只是一个临时的解决方案,但现在由于项目的进度问题,所以暂时没有找到问题的真正所在,也希望与我遇到同样问题的的朋友可以看到这个解决方案。 如果大家有更好的解决方案,也希望大家也告诉我一声。
2012.10.14