最近看了看struts,遇到一个问题:
Struts标签<html:radio/>校验失败返回后默认值不能保持,纠结半天是乱码问题!!
1、标签页面
<strong>用户注册</strong>
<html:form action="/register">
用户名 : <html:text property="username"/><html:errors property="regun"/><br/>
密码 : <html:password property="password"/><html:errors property="regpw"/><br/>
确认密码 : <html:password property="password2"/><html:errors property="regpw2"/><br/>
性别 : <html:radio property="sex" value="男">男</html:radio>
<html:radio property="sex" value="女">女</html:radio><br/>
生日 : <html:text property="birthday" onclick="JTC.setday(this)" readonly="true"/><html:errors property="regbday"/><br/>
邮箱 : <html:text property="email"/><html:errors property="regemail"/><br/>
<html:submit value="提交"/><html:reset value="重置"/>
</html:form>
2、actionForm中添加校验和默认值
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if(username == null || username.trim().equals("")) {
errors.add("regun",new ActionMessage("reg.error.username"));
}
if(password == null || password.trim().equals("")) {
errors.add("regpw",new ActionMessage("reg.error.password"));
}
if(password2 == null || password2.trim().equals("") || !password2.equals(password)) {
errors.add("regpw2",new ActionMessage("reg.error.password2"));
}
if(birthday == null || !birthday.matches("[0-9]{4}-[0-9]{2}-[0-9]{2}")) {
errors.add("regbday",new ActionMessage("reg.error.birthday"));
}
if(email == null || !email.matches(".+@.+\\..+")) {
errors.add("regemail",new ActionMessage("reg.error.email"));
}
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
sex = "男";
}
3、页面提交后,提示校验信息,但是<html:radio/>标签不显示默认值!
这种情况下不选择值,直接提交保存,可以保存,但是radio是乱码!
--------没有设置编码,添加编码的filter:
public static final String ENCODING = "UTF-8";
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
((HttpServletRequest) request).setCharacterEncoding(ENCODING);
((HttpServletResponse) response).setCharacterEncoding(ENCODING);
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
}
便可以正常显示了,原来是中文传过程中编码出现问题。望借鉴!最好用英文字符!
分享到:
相关推荐
如果想要调用Action,应该使用Struts2的标签库,如`<s:actionexecute/>`或`<s:redirect/>`。 解决“no found”问题的步骤可能包括检查上述所有方面,确保配置正确、路径无误、拦截器没有干扰,以及web.xml的错误...
### Struts2 `<s:if>` 标签使用详解 #### 概述 Struts2 是一款基于 Java 的企业级 Web 应用框架,它利用了 MVC(Model-View-Controller)架构模式来帮助开发者构建可扩展、易于维护的 Web 应用程序。在 Struts2 中...
在Struts2框架中,`<sx:>`标签是Struts2 XWork库的一部分,用于增强JSP页面的功能,提供更强大的数据绑定和表单处理能力。本篇将重点讲解如何利用`sx:`标签实现组合查询和带分页功能。 首先,让我们了解下Struts2的...
在Struts2标签库中,还有许多其他的标签,如<s:checkbox />、<s:radio />、<s:textarea />等,每个标签都有其特定的使用场景和应用。 Struts2标签库提供了一系列的标签,帮助开发者快速构建Web应用程序,并提高了...
`<html:select>`通常与`<html:option>`标签一起使用,后者用于定义每个可选项。 #### 二、设置默认选中的选项 为了设置`<html:select>`中的默认选中项,可以通过以下两种方式实现: 1. **通过`<html:option>`标签...
在Struts2框架中,`<s:if>`标签用于条件判断,类似于Java中的if语句。本篇文章将深入解析这段代码所涉及的关键知识点,并通过实际案例帮助理解如何使用Struts2中的`<s:if>`标签进行逻辑控制。 ### Struts2概述 ...
<s:property /><br/> </s:iterator> </s:generator> 例2: 生成一个iterator,使用count属性。因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。 Generate an iterator with count ...
关于STRUTS标签的一些详细说明。 如:<html:form>的说明。
`<html:file>`是Struts提供的一个标签,主要用于处理用户在HTML表单中上传文件的功能。在Struts 1中,这个标签简化了文件上传的复杂性,使得开发者可以方便地将用户选择的本地文件传递到服务器。 首先,我们来看`...
<%@ taglib prefix="s" uri="/struts-tags" %> 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. <s:a href=""></s:a>-----超链接,类似于html里的<a></a> 3. <s:...
在Struts2框架中,`<s:if>`标签被广泛应用于页面上根据不同的条件显示或隐藏某些元素。它的工作原理是基于表达式的结果来决定是否渲染其内部的HTML代码。当涉及到对String类型的对象属性值与单个字符进行比较时,...
Struts2 标签列表及说明 Struts2 是一个基于 Java 语言的 Web 应用程序 Framework,它提供了许多标签来帮助开发者快速构建 Web 应用程序。下面是 Struts2 的标签列表及说明: A: * <s:a>:超链接,类似于 HTML ...
在这个例子中,`<s:iterator>`标签遍历一个名为`listOfObjects`的集合,`<s:if>`和`<s:else>`标签则根据`displayRow`变量的值决定是否渲染`<tr>`标签。`<s:property>`标签用于输出对象的属性值。 需要注意的是,`...
以上只是Struts2标签库的一部分,实际使用中还有更多标签如`<s:textfield>`(文本输入框)、`<s:textarea>`(文本区域)、`<s:submit>`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...
1. `<s:a xhref="">` - 创建超链接,与HTML的`<a>`标签类似,但增加了Struts2的功能,如动作调用、参数传递。 2. `<s:action name="">` - 执行视图中的一个Action,可以直接在页面上调用Action方法。 3. `<s:action...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
在JSP中,我们通常使用`<%@ taglib prefix="s" uri="/struts-tags" %>`来引入Struts2的标签库。下面将详细介绍一些重要的Struts2标签及其功能。 **A. 超链接和Action标签** - `<s:a href=""></s:a>`:创建一个...
### Struts2 实现分页及 `<s:bean>` 标签详解 #### 一、Struts2 分页概述 在 Java Web 开发中,为了提高用户体验并减轻服务器负担,通常采用分页技术来展示数据。Struts2 框架提供了一套强大的工具和标签库来帮助...