使用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 />
上面的代码中,默认情况下,user.sex选中项是
男,此时选中
女,如果输入user.username不合法,验证失败后页面重新回到当前网页时,
user.username输入的值可以正常保存,但是user.sex选中的不是
女了,而是回到了默认值
男,请问有办法解决这个问题吗?
对应的user Bean代码:
public class User implements Serializable {
private String username;
private String password;
private boolean sex;
-----------------------------------
哎,大家都回家过中秋节了,自己的问题,自己回答吧。
希望对有此疑问的朋友有所帮助。我的方法,能实现,但总觉得有些丑陋,希望能学到大家实际开发中是如何声明的radio。
两种方法:
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" />
分享到:
相关推荐
- **接收请求参数**:Struts2能够自动将请求参数绑定到Action中的属性。 - **自定义类型转换器**:对于特定类型的请求参数,可以通过自定义类型转换器进行转换。 #### 八、其他功能 - **文件上传**:Struts2支持...
2. `<s:textfield>`:用于创建输入字段,与Action类的属性关联,可以设置验证规则和默认值。 3. `<s:textarea>`:创建多行文本输入框,与Action类的属性关联,适用于长文本输入。 4. `<s:submit>`:定义提交按钮,...
Struts2标签库是Java Web开发中的一个强大工具,它为开发者提供了丰富的UI组件和控制逻辑,极大地简化了视图层的代码编写。Struts2框架的标签库基于OGNL(Object-Graph Navigation Language)表达式语言,使得在JSP...
在Struts2中,标签库是其核心特性之一,它提供了一系列预定义的JSP标签,用于简化视图层的开发,使代码更加简洁、易读。本文将深入探讨Struts2标签的写法及其应用。 首先,Struts2的标签库分为核心标签库和OGNL标签...
在Struts 2中,HTML标签被替换为更强大的Struts Tags,提供了更多的功能和灵活性。例如,Struts 2的`s:textfield`、`s:password`等标签,不仅继承了Struts 1的功能,还增加了更多特性,如OGNL表达式支持、动态属性...
在Struts2中,标签库是其核心特性之一,它提供了一系列预定义的JSP标签,使得开发者可以更加便捷地处理视图层的展示逻辑。本文将深入探讨Struts2标签的使用,以帮助你更好地理解和应用这些标签。 1. **简介** ...
Struts2是一个强大的Java web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。Struts2的核心就是它的标签库,它提供了丰富的标签来帮助开发者更高效地构建用户界面。以下是对Struts2标签的史上最...
在Struts2中,标签库极大地提高了开发效率,使得开发者能够更专注于业务逻辑,而不是繁琐的HTML代码。 本文将深入探讨Struts2的标签使用,主要分为以下几个部分: 1. **标签库介绍** Struts2的标签库包括核心标签...
在Struts2中,选择标签是用于处理用户输入数据,特别是表单选择元素,如单选按钮和复选框。这些标签极大地简化了在JSP页面中创建动态表单的工作,并且提供了与Action类进行交互的方便方式。本文将深入探讨Struts2中...
当用户填写并提交这个表单后,Struts1框架会自动将表单数据绑定到`TagForm`对象中,然后通过Action处理用户的请求。Action可以对这些数据进行验证、业务处理,最后可能跳转到一个新的JSP页面显示结果。 总之,...
在Struts2框架中,标签库分为非UI标签和UI标签两大类。 1. **非UI标签**: 非UI标签通常用于处理逻辑或数据,不直接与用户界面交互。例如,`<s:property>`标签用于显示或传递对象的属性值,`<s:if>`和`<s:else>`...
7. `<html:errors>`:这个标签用于显示ActionForm中的验证错误信息,提高用户交互体验。 8. `<html:link>`:用于创建链接,它可以动态地生成URL,将请求参数与Action转发或重定向关联。 9. `<html:messages>`:...
### Struts2 标签详解 #### 一、概述 Struts2框架是Apache软件基金会提供的一个开源Web应用框架,它继承了Struts1的优点,并在此基础上做了许多改进。Struts2提供了丰富的标签库(Tag Library),使得开发人员能够...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...