需求:比如说我要注册一个用户首先有名字输入框,然后是一组checkbox选择框,当我点击注册之后发现名字已经存在了,我又要回到这个注册页面上,并且原来已经勾选的要选上(用struts2的标签)。
解决:对于这个问题网上也有解决方法,但是不好收集。我自己为了以后万一用到就总结一下吧。
跳转到这个注册页的时候checkbox是从数据库读出来的一个list并且该list里又嵌套了一个list作成页面形式大概就像这样:
性格栏:checkbox 活泼 checkbox 开朗
技能栏:checkbox Java checkbox C语言
其中 性格栏,技能栏是动态打出来的属于外部list,其中的选项属于内部list
这是页面处理的代码
<s:iterator value="inforList" id="infor" >
<tr>
<td >
<s:property value="#infor.name" />
</td>
<td >
<s:iterator value="#infor.KinouList" id="inerlist">
<input type="checkbox" name="ids" value="<s:property value="#inerlist.id" />"
<s:iterator value="ids" id="checkedid">
<s:if test=" #inerlist.id ==#checkedid">
checked="checked"
</s:if>
</s:iterator> />
<s:property value="#inerlist.name" /><br>
</s:iterator>
</td>
</tr>
</s:iterator>
对注册处理的action里有个Integer[] ids的属性(有get/set方法),如果注册失败则跳回原页面,对于inforList如何传递目前只能把它放到session里,如果大家有好的从jsp页面传的方法(嵌套的list哦),请留言,谢谢。