好久没写博客了,这个错误折腾了我一个下午。
我得JSP里边的定义是这样的:
<input type=checkbox name=selectSort id=<%tid%> value=<%tid%> checked=checked style=height:11px;><%tname%></input>;
其中tid和tname是我定义的临时变量
同时,action当中定义了变量 private String checkbox="";
但是当我getChechbox()的时候,却为空。
我怀疑是action中变量的定义与关键词重复导致struts无法寻找到,于是就把checkbox改为private String selectSort="";
于是有一次尝试打印,但是还是为空,明明我的界面上是显示正确的啊(tid和tname的取值正常)。如下图所示:
我又试了一下打印,结果变成了一排 on ,奇异了啊!
然后又在网上搜了一会,结果说的跟我的情况都差不多,但我的就是一排on.....
下班后,呆在座位上闲着,又去看了下input的各种属性,但是w3cschool中没有提到id,但是也有网友用这个属性来区别复选框的;
抱着试一下的心态,逐个删除input当中看起来没用的属性,结果当我把id=<%tid%>删除之后打印时,期待的结果终于出来了
哈哈,成功了~~~原来是加多了属性。
所以,我称之为画蛇添足般的错误。
这也算是一个启示,平时的编码中应该尽量之精简,不仅节约力气,也避免了类似的烦恼。