在我看了一些关于Struts 2框架中类型转换的blog或是网站,总感觉阐述的比较笼统,而且没有将理论和实践完整的结合起来。就这一点,我自己将Struts 2中的类型转换这个知识点总结如下,让大家参考。但是这个并不说我写的知识点有多好,这些内容只是发起大家一起来讨论。
1、首先将Struts 2框架中类型转换进行一个分类,内容如下:
(1)用户自定义类型转换方法
(2)使用Struts 2中的内建类型转换方法
2、为什么要使用类型转换
在开发Web应用的时候,对于B/S服务器表现层主要用于与用户交互,交互的信息或是请求参数通常是通过浏览器发送到服务器端,这些参数不具备丰富的数据类型,但是数据库中的数据往往是由不同的数据类型组成,因此将浏览器数据存入数据库之前,必须在服务器端完成数据类型的转换。
3、表现层数据处理需要涉及的技术有哪些
当知道表现层数据处理分类,才能明确在将B/S架构开发时候,表现层到底是干什么用的,为什么在J2EE结构中提出表现层。下面是表现层数据处理分类
(1)类型转换
(2)数据校验,包括:客户端校验;服务器端校验
4、自定义类型转换实现流程,流程如下面的箭头
5、有了上面的内容的介绍,我做了自定义局部类型转换器的测试,其步骤和自定义类型转换器流程图片中的步骤相同。下面按照测试的步骤将源码附上,供大家参考
(1)编写一个JavaBean,将请求参数封装成对象。该JavaBean的名称,Person.java
package com.gxa.edu.struts2.action.ch5;
import java.util.Date;
public class Person {
private String username;
private String password;
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
(2)编写一个Action类,来处理URL请求。该Action类的名称,TypeConversionAction.java
package com.gxa.edu.struts2.action.ch5;
import java.util.Date;
public class TypeConversionAction {
private String username;
private String password;
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String execute() {
System.out.println("/*===进入TypeConversionAction===*/");
System.out.println("date===" + date);
return "success";
}
}
(3)自定义类型转换器。该类型转换器名称,TypeConverter.java
package com.gxa.edu.struts2.action.ch5;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
public class TypeConverter extends StrutsTypeConverter{
private static SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD");
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
// TODO Auto-generated method stub
System.out.println("类型转换===" + arg1[0]);
Date date = null;
try {
if (arg1 != null && arg1.length > 1) {
String tmp = arg1[0];
date = sdf.parse(tmp);
}
} catch (ParseException e) {
System.out.println("时间类型转换解析错误");
}
return date;
}
@Override
public String convertToString(Map arg0, Object arg1) {
// TODO Auto-generated method stub
return sdf.format(arg1);
}
}
(4)编写配置文件。配置文件包含两个:struts-ch5.xml和Person-conversion.properties
struts-ch5.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>
<!-- Struts2 常量配置 -->
<constant name="struts.custom.i18n.resources"
value="messageResource">
</constant>
<package name="ch5" extends="struts-default" namespace="/ch5">
<action name="typeConversion" class = "com.gxa.edu.struts2.action.ch5.TypeConversionAction">
<result>/ch5/welcome.jsp</result>
</action>
</package>
</struts>
Person-conversion.properties配置文件代码如下:
date=com.gxa.edu.struts2.action.ch5.TypeConverter
(5)运行tomcat,并测试。测试结果分为两个:一个是Eclipse中console信息;一个是welcome.jsp页面显示信息
- 大小: 64.3 KB
- 大小: 24.8 KB
- 大小: 23.9 KB
分享到:
相关推荐
对于基本数据类型 strus2可以自动的将其转换成所需要的类型,但是我们自己定义的引用数据类型无法转换,本文详细介绍了strus2的自定义类型转换器
关于struts2的类型转换的处理方法。
使用struts2提供的转化器,实现Date类型的数据转换
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
struts2.1数据类型转换2struts2.1数据类型转换2struts2.1数据类型转换2struts2.1数据类型转换2struts2.1数据类型转换2struts2.1数据类型转换2struts2.1数据类型转换2struts2.1数据类型转换2
struts2的类型转换详解struts2的类型转换详解
Struts2处理类型转换错误,全局处理,如处理时间转换错误
Struts2自定义类型转换
struts2数据类型转换
一个struts2的用户管理实例,涉及增删改查。 主要用到的技术: 1.struts2 2.国际化 3.类型转换 4.struts标签
这是一个关于struts2的类型转换 以及 拦截器 还有校验的例子
熟悉和掌握Struts2自定义类型转换。 熟悉和掌握Struts2内建校验的操作方法 实验环境与设备: 已经接入局域网的网络实验室,机器上装有IE浏览器等; strtus2.5.8 实验内容: (1) 编写一个...
NULL 博文链接:https://hanazawakana.iteye.com/blog/1681564
自己用struts2写的一个简单的局部数据类型转换实例,适合初学者
struts2类型转换和国际化 根据自己所做实例 详细介绍
适合struts2入门使用,主要是struts拦截到的数据类型转换的问题
例如前台页面的Input框,我们输入一个坐标(x,y),通过Struts2配置,我们可以把前台输入的坐标自动给 Point Entity 的两个属性 int x 、int y 自动赋值!
1、 理解Struts2的类型转换类型 2、 理解局部类型转换器与全局类型转换器的区别 3、 掌握Struts2的自定义类型转换 4、 理解OGNL表达式语言
SSH之Struts2数据类型转换国际化及文件上传下载