在我看了一些关于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
分享到:
相关推荐
这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们可以根据Struts2中数据类型转换的工作原理来展开讨论。 在Java Web开发中,用户通过表单提交的数据通常是字符串形式...
在Struts2中,类型转换主要由`Converter`接口实现,它的主要职责是将HTTP请求参数转换为Action类的属性。当我们在Action类中定义一个属性,而这个属性的类型与请求参数的类型不匹配时,Struts2就会自动进行类型转换...
这个过程涉及到了类型转换,Struts2内置了一套转换器机制,能够自动处理基本类型和一些常见类型的转换。然而,对于如Date这样的复杂类型,需要自定义转换器来处理。 创建自定义类型转换器的步骤如下: 1. **定义...
在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...
在这个案例中,我们将深入探讨Struts2中的ConverterType,以及如何实现一个自定义的类型转换器来处理坐标(x,y)的数据。 首先,了解Struts2的类型转换机制。默认情况下,Struts2会根据Action类中属性的数据类型...
在Struts2中,实现类型转换主要有两种方式: 1. 使用内置的类型转换器:Struts2已经内置了一些常见的类型转换器,如String到Integer、Date等。当Struts2发现需要的转换器时,会自动查找并使用。 2. 自定义类型转换器...
类型转换在Struts2中主要通过实现ognl.TypeConverter接口来完成。当需要自定义转换器时,你需要创建一个类并实现这个接口,提供convertFromString和convertToString两个方法,分别处理字符串到目标类型的转换和目标...
在Struts2中,这通常通过资源 bundle 文件实现,例如`messages.properties`和`messages_zh_CN.properties`,分别用于存储默认语言和中文语言的文本。在Action或者JSP页面中,可以通过`<s:text>`标签来引用这些资源,...
### Struts2自定义类型转换:深入解析与实践 #### 引言 在Web开发中,数据类型转换是一项常见的需求,特别是在用户输入的数据与后端处理的数据类型不一致时。Struts2框架提供了强大的类型转换机制,允许开发者...
本练习主要关注如何在Struts2中实现自定义的数据类型转换,以满足特定业务需求。 首先,我们需要了解Struts2的数据转换机制。当用户提交表单数据时,Struts2会通过ActionContext获取到这些数据,并尝试将其转换为...
在Struts2中,数据类型转换的意义主要体现在以下几个方面: 1. **确保数据一致性**:通过类型转换,可以确保服务器接收到的数据与业务逻辑层中对象的属性类型保持一致,避免因类型不匹配导致的运行时错误。 2. **...
在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...
本篇文章将深入探讨如何在Struts2中处理这些类型的错误,特别是关于时间转换的错误。 1. **类型转换错误概述** 类型转换错误通常发生在Action类中的属性与用户提交的数据类型不匹配时。例如,如果你有一个`java....
本篇文章将深入探讨Struts2中的类型转换机制,包括常规类型转换、自定义类型转换以及错误处理。 首先,我们来看**常规类型转换**。Struts2框架内建了一套完整的类型转换器,能够自动处理常见数据类型,如String、...
在本教程中,我们将深入探讨如何在Struts2中实现自定义类型转换器。 首先,我们需要了解Struts2的类型转换过程。当用户通过表单提交数据时,Struts2会尝试将这些请求参数转换为Action类中对应属性的类型。如果默认...
在Struts2中,用户通过表单提交的数据通常是字符串,而服务器端处理时往往需要将其转化为其他类型,如整型、浮点型或日期等。Struts2内置了一套类型转换机制,能够自动将字符串数据转化为预设的类型。如果默认的转换...
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
在Struts2中,类型转换的过程分为两个步骤: 1. 自动类型转换:当Action类的某个属性没有指定Converter时,Struts2会尝试自动进行类型转换。它会查找与属性类型匹配的内置Converter,或者根据注解`@TypeConversion`...