`

Struts2学习笔记2-类型转换

阅读更多
第一种:使用DefaultTypeConverter转换
JSP页面
<s:textfield name="point" label="point"></s:textfield>
<s:textfield name="age" label="ages"></s:textfield>
<s:textfield name="username" label="usernames"></s:textfield>
<s:textfield name="date" label="birthdays"></s:textfield>

提交到相应的Action之后会读取和Action同目录的文件
ConverterAction-conversion.properties
point=com.langhua.converter.PointConverter

这样就会找到这个转换器
package com.langhua.converter;

import java.util.Map;

import com.langhua.bean.Point;

import ognl.DefaultTypeConverter;

public class PointConverter extends DefaultTypeConverter {

	@Override
	public Object convertValue(Map context, Object value, Class toType) {
		//从页面转到服务器 toType表示要转化的类型
		if(Point.class == toType){
			//有可能收集的是数组所以是个String的数组
			String[] values = (String[]) value;
			String[] args = values[0].split(",");
			Point point = new Point();
			point.setX(Integer.parseInt(args[0]));
			point.setY(Integer.parseInt(args[1]));
			return point;
		}
		//从服务器转到页面
		if(String.class == toType){
			Point p = (Point) value;
			return "["+p.getX()+","+p.getY()+"]";
		}
		return null;
	}
	
}

调用里面的方法
然后跳转到相应的页面再调用里面的方法
<action name="pointconverter" class="com.langhua.action.ConverterAction">
			<result name="success">/output.jsp</result>
	</action>

最后在页面输出
	point:<s:property value="point"/><br/>  
   	age:<s:property value="age"/><br/>
   	username:<s:property value="username"/><br/>
   	brithday:<s:property value="date"/><br/>

第二种,全局转换
和struts.xml同目录下面加入这样一个文件
xwork-conversion.properties
里面指定
com.langhua.bean.Point=com.langhua.converter.PointConverter1

这样只要遇到Point类,就会使用后面的转换器转换

第三种使用struts2提供的类StrutsTypeConverter extends DefaultTypeConverter来转换
如下
package com.langhua.converter;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

import com.langhua.bean.Point;

public class PointConverter1 extends StrutsTypeConverter {

	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		Point p = new Point();
		String[] parms = values[0].split(",");
		p.setX(Integer.parseInt(parms[0]));
		p.setY(Integer.parseInt(parms[1]));		
		return p;
	}

	@Override
	public String convertToString(Map context, Object o) {
		Point p = (Point)o;
		return p.toString();
	}

}


第四种可以在页面写成这样
<s:textfield name="point.x" label="x"></s:textfield>
		<s:textfield name="point.y" label="y"></s:textfield>

这样的话就不要什么配置文件了
分享到:
评论

相关推荐

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

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

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

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

    在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...

    struts2学习笔记(完美总结)——转自OPEN经验库

    在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...

    struts2学习笔记

    **二.Struts2类型转换** Struts2支持自动类型转换,它可以将HTTP请求参数自动转换为Action类中相应字段的类型。例如,如果请求参数为字符串,而Action字段为整型,Struts2会尝试将字符串转换为整型。 **三.Struts...

    struts2学习笔记四(第4讲.Struts2的类型转换续)

    在"Struts2学习笔记四(第4讲.Struts2的类型转换续)"中,我们将会深入探讨Struts2中的类型转换机制,这是一个核心特性,用于处理Action类属性与HTTP请求参数之间的数据类型转换。 在HTTP请求中,数据通常是字符串...

    Struts2学习笔记

    ### Struts2学习笔记知识点梳理 #### 一、Struts2框架概述 - **背景**:Struts2作为Struts1的升级版本,融合了WebWork框架的优点,由Apache基金会维护,是一个开源、免费的MVC框架。尽管随着时间的推移,Spring MVC...

    struts2学习笔记!

    ### Struts2学习笔记 #### 一、Struts2配置文件详解 在深入理解Struts2框架之前,我们首先需要了解其核心配置文件——`struts.xml`。 **1. struts.xml配置** ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!...

    Struts2学习笔记2012

    ### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” &gt; “New” &gt; “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...

    Struts2入门笔记1-4

    4. 学习笔记的内容可能覆盖了Struts2的基础配置、核心概念、实战技巧和复习巩固,帮助读者逐步掌握Struts2框架的全貌。 以上内容只是根据提供的信息进行的推断和扩展,具体的学习笔记内容可能包括了更详细的技术...

    Struts2.1学习笔记

    ### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...

    Struts2 学习笔记

    01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 ...

    struts2课程笔记

    本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...

Global site tag (gtag.js) - Google Analytics