在表单提交后,或者验证失败后,返回原有页面时,如何将用户原来在表单中填写数据保存下来呢?
经过研究后,发现有两种简便的方法可以解决:
1. 在不使用struts2标签的情况下,我们用普通的表单元素 。(以radio为例)
方法:我们将struts2 的控制标签嵌套在input表单元素中,根据action取得的值是否与页面radio的值相等,来判断用户原来选择的是哪个radio。
写法:
<s:if test="%{\"A\".equals(#attr.surveyDto.choice1)}"> checked="checked" </s:if>
具体例子:
<input type="radio" <s:if test="%{\"A\".equals(#attr.surveyDto.choice1)}"> checked="checked" </s:if> name="surveyDto.choice1" id="choice1_a" value="A">
A. 知道
<input type="radio" <s:if test="%{\"B\".equals(#attr.surveyDto.choice1)}"> checked="checked" </s:if> name="surveyDto.choice1" id="choice1_b" value="B">
B. 不知道
<input type="radio" <s:if test="%{\"C\".equals(#attr.surveyDto.choice1)}"> checked="checked" </s:if> name="surveyDto.choice1" id="choice1_c" value="C">
C. 听说过一点但不太清楚</span></td>
2. 使用struts2标签,这是最简单的方法,struts2会自动帮我们判断用户原来选择的radio
<s:radio list="#{'A':'A. 比较大','B':'B. 一般','C':'C. 有些作用','D':'D. 没什么作用'}" name="surveyDto.choice2" />