`
zhouxianglh
  • 浏览: 267602 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2 中的类型转换

阅读更多

Struts2 相对于Struts1 进步许多.在类型转换方面可以自动转换 int ,boolean ,double,Date(用的时候有些问题).Set ,List,数组 进行转换.

这里主要说一下自定义类型转换器.

1 局部

为 TestAction 配制  ****-conversion.properties  形式命名

TestAction-conversion.properties 

user.userName=com.isw2.convert.DefaultConvert

 com.isw2.convert.DefaultConvert.java

package com.isw2.convert;

import java.util.Map;

import ognl.DefaultTypeConverter;

public class DefaultConvert extends DefaultTypeConverter {

	@Override
	public Object convertValue(Map context, Object value, Class toType) {
		System.out.println("自定义转换 DateConvert.convertValue ---------------");
		if (value instanceof String[]) {// 从Action 输出
			String[] strArr = (String[]) value;
			return strArr[0] + "." + strArr[1];
		}
		return value;
	}
}

 这里继承了类 DefaultTypeConverter 并重写了 convertValue 方法.

 

2全局

xwork-conversion.properties

java.util.Date=com.isw2.convert.Struts2Convert

 这里表示转换所有 Date 对象.

com.isw2.convert.Struts2Convert.java  继承了 StrutsTypeConverter(抽象类) 类

package com.isw2.convert;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class Struts2Convert extends StrutsTypeConverter {

	/**
	 * 手动将 String[] 转为所需类型,交给Action
	 */
	@Override
	public Object convertFromString(Map arg0, String[] value, Class arg2) {
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		try {
			if (null != value[0] && value[0].trim().length() > 0) {
				return format.parse(value[0]);
			} else {
				return null;
			}
		} catch (ParseException e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 将从 Action 获得的数据转化为 String[] 型
	 */
	@Override
	public String convertToString(Map arg0, Object value) {
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return format.format(value);
	}
}

 3 转换错误提示

TestAction.properties

invalid.fieldvalue.user.userAge=\u5E74\u9F84\u6709\u8BEF.

 message.properties

xwork.default.invalid.fieldvalue={0}\u7C7B\u578B\u8F6C\u6362\u51FA\u9519.

 4 sx:datetimepicker  的使用

引入  struts2-dojo-plugin-2.1.8.jar

引入  <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>

<head></head> 中添加

     <s:head theme="xhtml" />
     <sx:head parseContent="true" extraLocales="en_us" />

<sx:datetimepicker name="user.userBirthday"
                displayFormat="yyyy-MM-dd" language="en_us"
                label="user.userBirthday" value="%{user.userBirthday }" />

 

 

我在用时发现只有  sx:datetimepicker  才能默认转换.不知问题何在.

 

 

List ,数组,Set   没有尝试.

 

东西都在代码里,有兴趣的自己看.

分享到:
评论

相关推荐

    struts2数据类型转换器

    这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们可以根据Struts2中数据类型转换的工作原理来展开讨论。 在Java Web开发中,用户通过表单提交的数据通常是字符串形式...

    struts2学习笔记三(第3讲.Struts2的类型转换)

    在Struts2中,类型转换主要由`Converter`接口实现,它的主要职责是将HTTP请求参数转换为Action类的属性。当我们在Action类中定义一个属性,而这个属性的类型与请求参数的类型不匹配时,Struts2就会自动进行类型转换...

    struts2自定义类型转换器

    这个过程涉及到了类型转换,Struts2内置了一套转换器机制,能够自动处理基本类型和一些常见类型的转换。然而,对于如Date这样的复杂类型,需要自定义转换器来处理。 创建自定义类型转换器的步骤如下: 1. **定义...

    struts2 类型转换器

    在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...

    Struts2 ConverterType类型转换 案例源码

    在这个案例中,我们将深入探讨Struts2中的ConverterType,以及如何实现一个自定义的类型转换器来处理坐标(x,y)的数据。 首先,了解Struts2的类型转换机制。默认情况下,Struts2会根据Action类中属性的数据类型...

    struts2简单实例(类型转换)

    在Struts2中,实现类型转换主要有两种方式: 1. 使用内置的类型转换器:Struts2已经内置了一些常见的类型转换器,如String到Integer、Date等。当Struts2发现需要的转换器时,会自动查找并使用。 2. 自定义类型转换器...

    STRUTS2类型转换

    类型转换在Struts2中主要通过实现ognl.TypeConverter接口来完成。当需要自定义转换器时,你需要创建一个类并实现这个接口,提供convertFromString和convertToString两个方法,分别处理字符串到目标类型的转换和目标...

    Struts2实例 国际化 类型转换 struts标签

    在Struts2中,这通常通过资源 bundle 文件实现,例如`messages.properties`和`messages_zh_CN.properties`,分别用于存储默认语言和中文语言的文本。在Action或者JSP页面中,可以通过`&lt;s:text&gt;`标签来引用这些资源,...

    Struts2自定义类型转换

    ### Struts2自定义类型转换:深入解析与实践 #### 引言 在Web开发中,数据类型转换是一项常见的需求,特别是在用户输入的数据与后端处理的数据类型不一致时。Struts2框架提供了强大的类型转换机制,允许开发者...

    struts2自定义数据类型转换练习

    本练习主要关注如何在Struts2中实现自定义的数据类型转换,以满足特定业务需求。 首先,我们需要了解Struts2的数据转换机制。当用户提交表单数据时,Struts2会通过ActionContext获取到这些数据,并尝试将其转换为...

    struts2数据类型转换

    在Struts2中,数据类型转换的意义主要体现在以下几个方面: 1. **确保数据一致性**:通过类型转换,可以确保服务器接收到的数据与业务逻辑层中对象的属性类型保持一致,避免因类型不匹配导致的运行时错误。 2. **...

    struts2类型转换和国际化

    在Struts2中,类型转换和国际化是两个重要的特性,用于处理数据类型之间的转换以及多语言环境下的内容显示。 **类型转换**是Struts2处理请求参数与Action类属性之间数据类型不匹配的过程。当用户通过表单提交请求时...

    Struts处理类型转换错误,如时间转换

    本篇文章将深入探讨如何在Struts2中处理这些类型的错误,特别是关于时间转换的错误。 1. **类型转换错误概述** 类型转换错误通常发生在Action类中的属性与用户提交的数据类型不匹配时。例如,如果你有一个`java....

    Struts2类型转换(一)----常规类型,自定义类型,错误处理

    本篇文章将深入探讨Struts2中的类型转换机制,包括常规类型转换、自定义类型转换以及错误处理。 首先,我们来看**常规类型转换**。Struts2框架内建了一套完整的类型转换器,能够自动处理常见数据类型,如String、...

    Struts2 自定类型转换器(三十四)

    在本教程中,我们将深入探讨如何在Struts2中实现自定义类型转换器。 首先,我们需要了解Struts2的类型转换过程。当用户通过表单提交数据时,Struts2会尝试将这些请求参数转换为Action类中对应属性的类型。如果默认...

    struts2类型转换 拦截器 校验的例子

    在Struts2中,用户通过表单提交的数据通常是字符串,而服务器端处理时往往需要将其转化为其他类型,如整型、浮点型或日期等。Struts2内置了一套类型转换机制,能够自动将字符串数据转化为预设的类型。如果默认的转换...

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    第2讲 --Struts2的类型转换

    在Struts2中,类型转换的过程分为两个步骤: 1. 自动类型转换:当Action类的某个属性没有指定Converter时,Struts2会尝试自动进行类型转换。它会查找与属性类型匹配的内置Converter,或者根据注解`@TypeConversion`...

Global site tag (gtag.js) - Google Analytics