- 浏览: 174841 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
yinvent:
谢谢,终于找到一个可以用的例子!
struts2学习之一简单范例 -
锅巴49:
学习了,不错.
使用 Spring 2.5 注释驱动的 IoC 功能 -
fooky:
你好,今天在配置spring secutiry3,想让系统先从 ...
spring security 配置文件小结(逐步深化到url级别) -
lj508:
你好啊 请教你个问题
我用那个纯jsp上传时
怎么运行时根本没 ...
Sturt2学习之十二---文件上传 -
641216927:
我还是一个struts2新手。
有个问题请教一下:
同时在t ...
struts2学习之一简单范例
<h3><font color="red">使用x坐标,y坐标分两行</font></h3> <s:form action="pointConverter"> <s:textfield name="point.x" label="x"></s:textfield> <s:textfield name="point.y" label="y"></s:textfield> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="username" label="username"></s:textfield> <s:textfield name="date" label="birthday"></s:textfield> <s:submit label="submit"></s:submit> </s:form>
一、当输入页面有多个Point类的对象时,point,point2,point3
那么相应的输入页面,结果页面,PointAction,PointAction-conversion.properties都改成三个。
point=com.test.converter.PointConverter
point2=com.test.converter.PointConverter
point3=com.test.converter.PointConverter
二、那么如果有十个呢?不是需要在配置文件中写十个,比较麻烦
有以下方法:全局的类型的类型转换
位置Src目录下,不在和相应的Action在一起了
名字叫xwork-conversion.properties
内容:com.test.bean.Point=com.test.converter.PointConverter
等号左边表示的需要转化的类名(含包名),右侧是转化类。
三、此时举例的转换类PointConverter2.java(基于Struts2的)更加简洁。一般正式项目中用的也是这个。
//继承StrutsTypeConverter并且重写convertFromString()和convertToString方法。
package com.test.converter; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.test.bean.Point; public class PointConverter2 extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { Point point = new Point(); String[] paramValues = values[0].split(","); int x = Integer.parseInt(paramValues[0]); int y = Integer.parseInt(paramValues[1]); point.setX(x); point.setY(y); return point; } @Override public String convertToString(Map context, Object o) { Point point = (Point)o; int x = point.getX(); int y = point.getY(); String result = "[ x = " + x + " , y = " + y + " ]"; return result; } }
四、转换集合类型 List<Point>
1)即在PointAction.java类为
package com.test.action; import java.util.Date; import java.util.List; import com.opensymphony.xwork2.ActionSupport; import com.test.bean.Point; public class PointAction extends ActionSupport { private List<Point> point; private int age; private String username; private Date date; public List<Point> getPoint() { return point; } public void setPoint(List<Point> point) { this.point = point; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Override public String execute() throws Exception { return SUCCESS; } }
2)此时的转化类可修改为PointConverter3.java
package com.test.converter; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.test.bean.Point; public class PointConverter3 extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { List<Point> list = new ArrayList<Point>(); for(String value : values) { Point point = new Point(); String[] paramValues = value.split(","); int x = Integer.parseInt(paramValues[0]); int y = Integer.parseInt(paramValues[1]); point.setX(x); point.setY(y); list.add(point); } return list; } @Override public String convertToString(Map context, Object o) { List<Point> list = (List<Point>)o; StringBuilder sb = new StringBuilder(); sb.append("[ "); int number = 0 ; for(Point point : list) { ++number; int x = point.getX(); int y = point.getY(); sb.append(number).append(" x = ").append(x).append(" , y = ").append(y).append(" "); } sb.append("]"); return sb.toString(); } }
3)input.jsp
<s:form action="pointConverter"> <s:textfield name="point" label="point"></s:textfield> <s:textfield name="point" label="point2"></s:textfield> <s:textfield name="point" label="point3"></s:textfield> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="username" label="username"></s:textfield> <s:textfield name="date" label="birthday"></s:textfield> <s:submit label="submit"></s:submit> </s:form>
4)output.jsp
point:<s:property value="point"/><br> age:<s:property value="age"/><br> username:<s:property value="username"/><br> date:<s:property value="date"/><br>
五、将x坐标,y坐标分两行输入页面
1)input.jsp
2)此时就不用任何类型转化了,就可以自动准确输出了
3)采用这种方式“.”对象.属性的方式的话,Point必须提供一个不带参数的构造方法
其实strut2内部采用了反射的机制!不建意用这个方式,表单太罗嗦了。
发表评论
-
webwork Action中获取request, response,session对象的方法
2009-04-16 17:25 1662webwork Action中获取request ... -
不依赖XML代码粘合创建Struts 2应用程序
2009-04-07 15:32 1442不依赖XML代码粘合创建Struts 2应用程序 原文地址:h ... -
struts.properties粗解
2009-04-07 14:28 1423原文章地址:http://fratemity1314.spac ... -
Struts2学习之十五-声明式的异常处理
2009-04-06 22:32 888看下文前可以先参考: http://blog.chinaun ... -
struts2学习之十四----其他知识点
2009-04-06 19:31 1297一、struts2探索学习完一定需要实际去运行,这样才能有更加 ... -
Sturt2+spring整合
2009-04-01 17:55 1141一、相应的spring的jarStruts2-spring-p ... -
Sturt2学习之十三---文件下载
2009-04-01 17:01 1031Sturt2学习之十三---文件下载1、download.js ... -
Sturt2学习之十二---文件上传
2009-04-01 15:59 2290一、纯jsp文件上传1、新建文件夹upload内含upload ... -
struts学习之十一-----国际化
2009-04-01 10:59 1071一、java对国际化的支持 ... -
struts2学习之九---拦截器
2009-04-01 10:34 1471拦截器实现机制一、回忆“java反射与动态代理二.txt”,因 ... -
struts2学习之八校验框架--非字段校验
2009-04-01 01:16 1268一、非字段校验 用属性来校验字段和字段检验刚好是参照物相反 ... -
struts2学习之七校验框架--字段校验
2009-04-01 00:23 1548struts2学习之七校验框架--字段校验(使用xml文件)一 ... -
struts2学习之六输入校验
2009-03-31 21:53 1565一、输入校验与类型转化的关系 遇到类型转换错误的时候(也就是说 ... -
struts2学习之五(最基本的)输入校验
2009-03-31 21:51 931一、register.jsp注册页面 //以下第一两句 的作用 ... -
struts2学习之三、类型转换
2009-03-31 17:08 910struts2学习之三、类型转 ... -
struts2学习之二------基本验证
2009-03-31 15:39 1004struts2学习之二----基本 ... -
struts2学习之一简单范例
2009-03-31 14:45 2213简单范例1、下载struts2.0.11-all.rar 2、 ...
相关推荐
struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换
在这个"struts2简单实例(类型转换)"中,我们将探讨Struts2如何处理不同类型的数据转换,以及如何创建一个简单的演示应用。 首先,让我们理解什么是类型转换。在Web应用程序中,用户通过表单提交的数据通常是字符...
在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...
本实例主要探讨了在Struts2中进行类型转换的三种方法:局部类型转换、全局类型转换以及大量数据类型的转换。对于初学者来说,理解并掌握这些转换方式至关重要,因为它们能够帮助我们处理用户输入的数据,并将其转化...
这篇博客“Struts2数据类型转换器”可能深入探讨了这个主题,虽然具体的细节无法在此给出,但我们可以根据Struts2中数据类型转换的工作原理来展开讨论。 在Java Web开发中,用户通过表单提交的数据通常是字符串形式...
在"Struts2学习笔记四(第4讲.Struts2的类型转换续)"中,我们将会深入探讨Struts2中的类型转换机制,这是一个核心特性,用于处理Action类属性与HTTP请求参数之间的数据类型转换。 在HTTP请求中,数据通常是字符串...
Struts2是一个强大的MVC框架,它在处理Web应用程序时提供了许多便利,其中包括类型转换功能。类型转换是将用户输入的数据自动转化为服务器端处理所需的类型,这样可以避免手动转换带来的繁琐工作。本篇文章将深入...
struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter struts5 增加集合类型,使用范型 ...
- **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 架构** - **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View)...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。...这个案例提供了一个很好的学习点,帮助开发者更好地理解和利用Struts2框架的类型转换机制,提高代码的健壮性和可维护性。
9. **全局类型转换配置**:为了统一管理不同类型转换的规则,Struts2允许在`struts.xml`配置文件或`xwork-conversion.properties`文件中定义全局的类型转换策略,从而避免在每个Action中重复配置相同的转换规则。...
通过这两课时的学习,你应该能够熟练掌握Struts2类型转换器的使用,并能根据业务需求自定义自己的转换器。这些知识对于进行Java web开发,特别是使用Struts2框架的工作来说,是非常关键的。理解并运用好类型转换器,...
WebWork在被Struts2吸收之前,已经具备了许多先进的特性,如动态类型转换、拦截器和结果类型等。这些特性后来都被融入到了Struts2中,使得Struts2不仅继承了WebWork的优点,还在此基础上进行了改进和扩展,成为了...
通过这个压缩包,开发者可以学习到如何自定义Struts2的类型转换器,提高应用的灵活性和可维护性。同时,结合博文链接(https://llxhna.iteye.com/blog/1067851)可能会提供更深入的讲解和示例代码,帮助理解并实践这...
本案例"Struts2之类型转换器的使用案例struts002"深入探讨了如何自定义类型转换器以及在实际应用中的使用。 首先,Struts2框架提供了一系列内置的类型转换器,可以自动处理基本类型和常见类型的数据转换,如String...
本实例练习旨在帮助你深入理解Struts2的工作原理,特别是自定义类型转换和拦截器的使用。 首先,让我们详细探讨Struts2的MVC架构。在MVC模式中,Model代表业务逻辑,View负责展示数据,而Controller则是两者之间的...
在实际应用中,Struts2转换器不仅可以处理简单的类型转换,还能进行数据验证。例如,你可以在转换器中检查日期是否符合特定格式,或者数值是否在指定范围内。这样,你可以在数据到达业务逻辑之前就捕获并处理潜在的...
总结来说,Struts2的类型转换机制是其核心功能之一,它有效地解决了HTTP请求数据与Action属性之间的类型不匹配问题。理解并掌握Struts2的类型转换,对于提升Java web应用的开发效率和质量具有重要意义。通过学习和...
这篇博文深入探讨了Struts2中的类型转换机制,通过分析源码和使用工具,帮助开发者更好地理解和应用这一特性。 在Struts2中,类型转换主要由`ValueStack`和`TypeConverter`接口负责。`ValueStack`是一个对象栈,它...
8. **类型转换**:Struts2自动处理HTTP请求参数到Action字段的类型转换,减轻了开发者的工作负担。 9. **异常处理**:Struts2提供了全局的异常处理机制,可以统一处理应用中的异常,提高代码的健壮性。 10. **国际...