第三种struts2类型转换方式实例
1.convert.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>类型转换</title>
  6. </head>
  7. <body>
  8. <form action="convert.action" method="post">
  9. point:<input name="point" type="text"></br>
  10. <input type="submit" value="submit">
  11. </form>
  12. </body>
  13. </html>

2.convertResult.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
  2. <%@ taglib uri="/struts-tags" prefix="s" %>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6. <title>类型转换结果页面</title>
  7. </head>
  8. <body>
  9. point:<s:property value="point"/>
  10. </body>
  11. </html>

3.Point.java(POJO类)

  1. package com.hitsoft.model;
  2. public class Point {
  3. private int x;
  4. private int y;
  5. public int getX() {
  6. return x;
  7. }
  8. public void setX(int x) {
  9. this.x = x;
  10. }
  11. public int getY() {
  12. return y;
  13. }
  14. public void setY(int y) {
  15. this.y = y;
  16. }
  17. @Override
  18. public String toString() {
  19. String result = "x = " + x + " , y = " +y;
  20. return result;
  21. }
  22. }

4.struts.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <package name="struts2"  extends="struts-default">
  7. <action name="convert" class="com.hitsoft.action.ConvertAction">
  8. <result name="success">/convertResult.jsp</result>
  9. </action>
  10. </package>
  11. </struts>

5.ConvertAction.java

  1. package com.hitsoft.action;
  2. import java.util.Date;
  3. import com.hitsoft.model.Point;
  4. import com.opensymphony.xwork2.ActionSupport;
  5. public class ConvertAction extends ActionSupport{
  6. private Point point;
  7. public Point getPoint() {
  8. return point;
  9. }
  10. public void setPoint(Point point) {
  11. this.point = point;
  12. }
  13. public String execute() throws Exception{
  14. return "success";
  15. }
  16. }

6.xwork-conversion.properties(必须与struts.xml同一级包下定义)

  1. point=com.hitsoft.convert.PointConverter

7.PointConverter.java

  1. package com.hitsoft.convert;
  2. import java.util.Map;
  3. import org.apache.struts2.util.StrutsTypeConverter;
  4. import com.hitsoft.model.Point;
  5. public class PointConverter extends StrutsTypeConverter{
  6. @SuppressWarnings("unchecked")
  7. @Override
  8. public Object convertFromString(Map context, String[] values, Class toClass) {
  9. Point point = new Point();
  10. String value = values[0];
  11. String[] result = value.split(",");
  12. point.setX(Integer.parseInt(result[0]));
  13. point.setY(Integer.parseInt(result[1]));
  14. return point;
  15. }
  16. @SuppressWarnings("unchecked")
  17. @Override
  18. public String convertToString(Map context, Object o) {
  19. Point point = (Point) o;
  20. int x = point.getX();
  21. int y = point.getY();
  22. String result = "x: " + x + "y:" + y;
  23. return result;
  24. }
  25. }

8.访问地址:

http://localhost:8080/struts2/convert.jsp

输入:

1,2

输出:

point:1,2



说明:这种类型转换的优点是,对于PointConvert转换器,只有项目中用到Point对象转换,就可以自动转换

                         来源:http://wanglihu.iteye.com/blog/1405647

sturct2类型转化的更多相关文章

  1. Spring mvc @initBinder 类型转化器的使用

    一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" e ...

  2. C#定义类型转化 及 格式化字符串

    operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...

  3. C++中的显式类型转化

    类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转 ...

  4. jQuery源码分析系列(36) : Ajax - 类型转化器

    什么是类型转化器? jQuery支持不同格式的数据返回形式,比如dataType为 xml, json,jsonp,script, or html 但是浏览器的XMLHttpRequest对象对数据的 ...

  5. Asp.net 面向接口可扩展框架之使用“类型转化基础服务”测试四种Mapper(AutoMapper、EmitMapper、NLiteMapper及TinyMapper)

    Asp.net 面向接口可扩展框架的“类型转化基础服务”是我认为除了“核心容器”之外最为重要的组成部分 但是前面博文一出,争议很多,为此我再写一篇类型转化基础服务和各种Mapper结合的例子,顺便对各 ...

  6. Asp.net 面向接口可扩展框架之类型转化基础服务

    新框架正在逐步完善,可喜可贺的是基础服务部分初具模样了,给大家分享一下 由于基础服务涉及面太广,也没开发完,这篇只介绍其中的类型转化部分,命名为类型转化基础服务,其实就是基础服务模块的类型转化子模块 ...

  7. 《精通C#》自定义类型转化-扩展方法-匿名类型-指针类型(11.3-11.6)

    1.类型转化在C#中有很多,常用的是int类型转string等,这些都有微软给我们定义好的,我们需要的时候直接调用就是了,这是值类型中的转化,有时候我们还会需要类类型(包括结构struct)的转化,还 ...

  8. java类型转化之SimpleDateFormat-时间转化

    关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat. 先介绍SimpleDateFormat类的一些常见格式: 1.参数: code des ...

  9. Javascript基础系列之(三)数据类型 (类型转化)

    所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,通过全局函数,可以实现更为复杂的数据类型. var a = 3; var b = a + 3; var ...

随机推荐

  1. BASIS--笨办法解决ALV_GRID的列剪切丢失纪录的错误

    最近经常有业务人员问及在ALV_grid输出报表中,选择某一列,点击左键,并点击弹出菜单的复制文本,复制出的文本存在丢失 (纪录不少,但部分纪录的文本丢失).该如何解决呢? 后来跟踪代码发现这个命令没 ...

  2. ABAP 一个隐藏 selection-screen block的实例

    以下是一个演示如何通过 selection-screen 中的pushbutton来动态改变屏幕上的字段的显示状态的(即显示或者隐藏).      注意:显示 通过本示例可知selection-scr ...

  3. abap 字符串处理

    1).SHIFT:截断字符串 SHIFT {c} [BY {n} PLACES] [{mode}].:      作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则 ...

  4. 转:与Microsoft Visual Studio集成良好的第三方工具

    我们都知道,Microsoft Visual Studio(简称VS)是微软开发的一个非常高效的集成开发环境,但即使已经发展到VS2012,仍然有许多不尽人意的地方.一般来讲,一个项目中需要有控件.代 ...

  5. java使用动态代理来实现AOP(日志记录)

    以下内容为原创,转载时请注明链接地址:http://www.cnblogs.com/tiantianbyconan/p/3336627.html AOP(面向方面)的思想,就是把项目共同的那部分功能分 ...

  6. gif动图快速制作方法(附工具)

    现在写博客或是wiki的过程中,会经常引用到图片,特别是客户端经常与页面相关所以截图不可避.但是越来越多的效果仅仅一张图片是无法清楚的描述.并且博客或是wiki也是支持gif图的.gif图的制作方法有 ...

  7. Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数

    1.主要布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...

  8. ios 怎么解决Could not find Developer Disk Image

  9. 【代码笔记】iOS-首页3张图片变化

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  10. 【代码笔记】iOS-提醒时间的选择

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...