第三种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. Failed to connect to database. Maximum number of conections to instance exceeded

    我们大体都知道ArcSDE的连接数有 48 的限制,很多人也知道这个参数可以修改,并且每种操作系统能支持的最大连接数是不同的. 如果应用报错:超出系统最大连接数 该如何处理? 两种解决办法: 第一,首 ...

  2. 一文让你彻底了解iOS字体相关知识

    写本文的契机主要是把自己整理的关于iOS字体方面的知识不断更新写在这篇博文中,用来自己以后查阅. 一.iOS原生字体展示 在label中选择字体的font,并把font由system改成custom后 ...

  3. 改变Android ProgressBar样式颜色

    地址: http://blog.csdn.net/lvxiangan/article/details/9110121

  4. Android线程优先级设置方法技巧

    对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...

  5. Scrum三大角色特点

    灵感来自于一段冷笑话: 一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起什么名字呢?”,鸡想了想说“餐馆名字叫火腿和鸡 ...

  6. Swift-Switch穿透

    switch vegetable {        case "celery":            print("Add some raisins and make ...

  7. 统计整个Xcode工程代码行数

    打开终端,ls 查看目录,用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" ...

  8. Oracle与MySQL的区别

    1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大访 ...

  9. yii2解决百度编辑器umeditor图片上传问题

    作者:白狼 出处:http://www.manks.top/article/yii2_umeditor_upload本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原 ...

  10. SQL Server 2000 :选择许可模式及更改

    在SQL Server企业版中,有一个许可模式概念,有两种许可模式:“处理器许可证”和“每客户”模式.“处理器许可证”模式表示允许几个CPU运行SQL Server,“每客户”决定的是客户端连接数. ...