使用FreeMarker和radio标签,结果当验证失败时,radio的选中项不是保持在选中的项目上,而是回到了默认值。
- 用户名:<@s.textfield name="user.username" required="true" />
- <br />
- 性别:
- <@s.radio name="user.sex" value="%{'true'}" list=r'#{"true":"男", "false":"女"}' required="true" />
- <br />
两种方法:
1、基于FreeMarker
对user对象进行判断,设定sexValue变量。
- <#if user?exists>
- <#assign sexValue = user.sex?default('true')?string />
- <#else>
- <#assign sexValue = 'true' />
- </#if>
然后,在使用radio时,象下面这样声明。
- <@s.radio name="user.sex" value="${sexValue}" list=r'#{"true":"男", "false":"女"}' required="true" />
2、基于OGNL,这个好。
- <@s.radio name="user.sex" value="%{user == null || user.sex == null ? 'true' : user.sex}" list=r'#{"true":"男", "false":"女"}' required="true" />