struts2 jsp提交日期类型转换及国际化实现
概述:下面通过jsp提交输入注册信息信息,同时完成过程文件国家化问题演示说明。【注册日期转换用注解方式实现】
工程截图:

注册页面jsp文件:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="tycoon"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- method 默认为:post -->
<tycoon:form action="regist" method="post">
<tycoon:textfield label="用户名" name="username"></tycoon:textfield>
<tycoon:password label="密码" name="password"></tycoon:password>
<tycoon:password label="确认密码" name="repassword"></tycoon:password>
<tycoon:textfield label="生日" name="birthday"></tycoon:textfield>
<tycoon:textfield label="年龄" name="age"></tycoon:textfield>
<tycoon:submit value="登录"></tycoon:submit>
</tycoon:form>
</body>
</html>
success.jsp(成功后跳转页面):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="tycoon"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>success</title>
</head>
<body>
欢迎,<tycoon:property value="username" />登陆</br>
密码为,<tycoon:property value="password" /></br>
生日,<tycoon:property value="birthday" /></br>
年龄,<tycoon:property value="age" /></br>
</body>
</html>
Regist.java(注册页面action文件):
package com.tycoon.usermanager; import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.conversion.annotations.TypeConversion; public class RegistAction extends ActionSupport { /**
* 东北大亨
*/
private static final long serialVersionUID = -1245514962211959620L; private String username;
private String password;
private String repassword;
private Date birthday;
private Integer age; public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getRepassword() {
return repassword;
} public void setRepassword(String repassword) {
this.repassword = repassword;
}
// 注解方式实现注册页面日期类型转换
@TypeConversion(converter="com.tycoon.common.DataConver3")
public Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} public String execute() throws Exception { System.out.println("调用registAction execute() ");
return SUCCESS;
}
}
日期类型转换类:
package com.tycoon.common; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
/**
* 东北大亨
* @author tycoon
*
*/
public class DataConver3 extends StrutsTypeConverter { private SimpleDateFormat[] sdfs = new SimpleDateFormat[] { new SimpleDateFormat("yyyy-MM-dd"),
new SimpleDateFormat("yyyy年MM月dd日"), new SimpleDateFormat("yyyy/MM/dd") }; @Override
public Object convertFromString(Map context, String[] values, Class arg2) { if (values == null)
return null; Date dt = null;
for (SimpleDateFormat sdf : sdfs) {
try {
dt = sdf.parse(values[0]);
return dt;
} catch (ParseException e) {
continue;
}
} return null;
} @Override
public String convertToString(Map context, Object value) { if (null == value)
return null;
if (value instanceof Date) {
Date df = (Date) value;
System.out.println(" DataConver2 :" + "convertToString");
return sdfs[0].format(df);
}
return null;
}
}
国际化文件key及value值:
(1)message_en_US.properties 文件内容:
xwork.default.invalid.fieldvalue=Invalid field value for field "{0}"
(2)message_zh_CN.properties 文件内容:
xwork.default.invalid.fieldvalue=\u4F60\u8F93\u5165\u7684\u683C\u5F0F\u4E0D\u6B63\u786E
struts.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 配置全局国家化资源文件 jsp页面和Action都可以使用 -->
<constant name="struts.custom.i18n.resources" value="message"/>
<package name="default" namespace="/" extends="struts-default">
<action name="regist" class="com.tycoon.usermanager.RegistAction"
method="execute">
<result>/success.jsp</result>
<result name="error">/failure.jsp</result>
<result name="input">/regist.jsp</result>
</action>
</package>
</struts>
演示效果截图:
未实现国际化输入错误值提示错误信息:

实现国际化输入接收的日期类型值图一:

跳转成功后:

struts2 jsp提交日期类型转换及国际化实现的更多相关文章
- struts2 jsp提交对象数据要这么干
不要每个属性都 setter getter .. 这样页面很难看... 直接 把对象变成一个成员变量会比较好. Java code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1 function dosearch() {2 if ($(&q ...
- Struts2学习笔记(七)——类型转换
1.自动类型转换 Struts2内部提供大量类型转换器,用来完成数据类型转换问题: String和boolean.Boolean:完成字符串与布尔值之间的转换 String和char.Characte ...
- Struts2中Date日期转换的问题
今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforC ...
- [转]SpringMVC日期类型转换问题三大处理方法归纳
http://blog.csdn.net/chenleixing/article/details/45190371 前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日 ...
- SpringMVC日期类型转换问题三大处理方法归纳
方法一:实体类中加日期格式化注解 @DateTimeFormat(pattern = "yyyy-MM-dd") private Date receiveAppTime; 方法二: ...
- SpringMVC日期类型转换问题处理方法归纳
前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后 台实体类之间日期转换处理的问题了,说问题也不大,但很多人开发中经常会遇到这个问题,有时很令人头疼,有时间问题暴露的不是很明显,然 ...
- Struts2中的数据类型转换
Struts2对数据的类型转换 一.Struts2中自带类型转换拦截器 Struts2内部提供了大量转换器,用来完成数据类型转换的问题,有如下 * boolean 和 Boolean * char和 ...
- jsp提交表单数据乱码,内置对象,以及过滤器
jsp提交表单数据乱码解决方案 通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码: 在调用getPara ...
随机推荐
- Cryptography I 学习笔记 --- 认证加密
1. 认证加密,Alice与Bob共享一个密钥k,Alice可以发送密文E给Bob,Bob可以确定接收到的E一定是拥有密钥k的Alice产生的.而不是攻击者随便产生的. 2. 认证加密必须能抵挡住选择 ...
- asp.net core 开发环境自定义域名及端口
web项目上右键-> 选择属性-> 选择调试->编辑“应用url” ,再用vs启动web项目即可实现自定义url. 值得注意的是如果报“visual studio无法连接到iis e ...
- Redis 批量删除Redis的key 正则匹配删除
del 删除单个key方便 要是删除多个就不是很方便了 这时候可以使用xsrsg来批量删除 1.退出redis 2.匹配CCPAI:开头的所有key*删除 redis-cli -a 密码 -h hos ...
- Codeforces 161D Distance in Tree(树型DP)
题目链接 Distance in Tree $k <= 500$ 这个条件十分重要. 设$f[i][j]$为以$i$为子树,所有后代中相对深度为$j$的结点个数. 状态转移的时候,一个结点的信息 ...
- python正则表达式从路径中取文件名出来不加后缀(txt)
正则表达式[^\\/:*?"<>|\r\n]+$ ---->取文件名包括后缀 e.g. >>>D:\PyCharm 2018.2.4\pythonWork ...
- SecureCRT分屏显示
[Tab右键]或者[Session Manager右键]->[Send to New Tab Group]
- DotnetBrowser入门教程-(2)启动简单的Web服务
微软的网页服务向来与IIS捆绑紧密,虽然.net core可以脱离iis了,但是基于国内的xp系统,.net core类库的精简,使得我们仍然在dotnetbrowser增加了对web服务的支持. 先 ...
- 【GLSL教程】(二)在OpenGL中使用GLSL 【转】
http://blog.csdn.net/racehorse/article/details/6616256 设置GLSL 这一节讲述在OpenGL中配置GLSL,假设你已经写好了顶点shader和像 ...
- NVIDIA® Quadro® 四路缓冲 3D立体方案
http://www.nvidia.cn/object/quadro_pro_graphics_boards_cn.html NVIDIA® Quadro® 专业显卡让地球学家以及时装设计师等许多专业 ...
- String转Map的工具类
借鉴代码 public class StringToMapUtil { public static Map<String, String> getValue(String param) { ...