贴代码

struts的action中接收简单类型参数,struts2可以自动转化,但是复杂类型需要自定义转换器转换

public class ConvertAction extends ActionSupport{

    private int age;
private Date date;
private List<String> interests;
private String name;
private Map<String, String> map; //复杂类型
private List<Point> ps;
public List<Point> getPs() {
return ps;
}
public void setPs(List<Point> ps) {
this.ps = ps;
}
//特殊类型
private Point p; public Point getP() {
return p;
}
public void setP(Point p) {
this.p = p;
} public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public int getAge() {
return age;
}
public Date getDate() {
return date;
}
public List<String> getInterests() {
return interests;
}
public String getName() {
return name;
}
public String hello(){ System.out.println("date:"+date);
return SUCCESS;
}
public void setAge(int age) {
this.age = age;
}
public void setDate(Date date) {
this.date = date;
}
public void setInterests(List<String> interests) {
this.interests = interests;
} public void setName(String name) {
this.name = name;
}
}
public class PointConvert extends DefaultTypeConverter{

    @Override
public Object convertValue(Object value, Class toType) {
// TODO Auto-generated method stub
if (toType == Point.class) {
Point p=new Point();
String[] values=(String[]) value;
String[] pv = values[0].split(",");
p.x=Integer.parseInt(pv[0]);
p.y=Integer.parseInt(pv[1]);
return p;
}
if (toType == String.class) {
return value.toString();
}
return super.convertValue(value, toType);
} }

注册转换器:两种方式

1.局部:与action同包  XXXAction-conversion.properties

2.全局:src根目录  xwork-conversion.properties

目录结构

具体代码在文件那,下载看。

struts2参数转换器用法的更多相关文章

  1. struts2参数转换器用法---2

    //第二种转换器写法public class PointConvert2 extends StrutsTypeConverter{ @Override public Object convertFro ...

  2. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  3. linux mount命令参数及用法详解

    linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...

  4. 【转】linux expr命令参数及用法详解

    在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...

  5. 下面将详细说明useradd与usermod 的参数及用法!

    下面将详细说明useradd与usermod 的参数及用法! 说到这里要另外两句,关于linux下口令相关的文件存放位置说明/usr/bin/passwd 包含 passwd 命令. /etc/pas ...

  6. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  7. linux dmesg命令参数及用法详解(linux显示开机信息命令)

    linux dmesg命令参数及用法详解(linux显示开机信息命令) http://blog.csdn.net/zhongyhc/article/details/8909905 功能说明:显示开机信 ...

  8. linux sed命令参数及用法详解

    linux sed命令参数及用法详解 http://blog.csdn.net/namecyf/article/details/7336308 1. Sed简介 sed 是一种在线编辑器,它一次处理一 ...

  9. 为什么需要main函数,及其参数的用法

    首先,需要明确main函数是什么? 答:main函数是C语言约定的入口函数 C99标准里面是这样描述的: Program startup The function called at program ...

随机推荐

  1. Win10系列:VC++绘制几何图形2

    新建了Direct2D中的资源后,接下来初始化用于绘制图形的应用窗口.在解决方案资源管理器窗口中右键点击项目图标,在弹出的菜单栏中选中"添加", 并在"添加"的 ...

  2. Android 音视频深入 一 AudioRecord录音生成pcm转换为wav(附源码下载)

    本篇项目地址,名字是AudioRecord录音(能暂停,将pch转换为wav),求starhttps://github.com/979451341/Audio-and-video-learning-m ...

  3. Java 如何抛出异常、自定义异常

    Java错误与异常的基本概念: 1.java中异常均继承自Throwable,其有两个重要的直接子类error与exception. 2.java错误error,大部分是由虚拟机爆出来的错误,是程序无 ...

  4. 十八. Python基础(18)常用模块

    十八. Python基础(18)常用模块 1 ● 常用模块及其用途 collections模块: 一些扩展的数据类型→Counter, deque, defaultdict, namedtuple, ...

  5. (C/C++学习笔记) 六. 表达式

    六. 表达式 ● 表达式 表达式 expression An expression consists of a combination of operators and operands. (An o ...

  6. 《图解HTTP》读书笔记(转)

    reference:https://www.cnblogs.com/edisonchou/p/6013450.html   目前国内讲解HTTP协议的书是在太少了,记忆中有两本被誉为经典的书<H ...

  7. Appium Python API

    1.contexts contexts(self): Returns the contexts within the current session. 返回当前会话中的上下文,使用后可以识别H5页面的 ...

  8. 爬虫系列5:scrapy动态页面爬取的另一种思路

    前面有篇文章给出了爬取动态页面的一种思路,即应用Selenium+Firefox(参考<scrapy动态页面爬取>).但是selenium需要运行本地浏览器,比较耗时,不太适合大规模网页抓 ...

  9. Python 第一类对象

    def fn(): print("我叫fn") fn() print(fn) # <function fn at 0x0000000001D12E18> fn() gn ...

  10. robotframework·WEB项目

    date:2018527 day11 一.项目分层 1.测试数据(配置变量,如网址.用户名.密码等) 2.关键字(关键字封装,要调用直接使用关键字名即可,输入内容.点击元素.滚动滑动条等等) 3.测试 ...