struts类型自动转换

 比如我们只提供一个输入框,但是需要将一个对象的值都传入进去,比如我有一个Point类,类有x,y  而我在界面只提供一个输入框  输入x,y方式

     而action层,接收的还是一个实体类

  Point类  

package com.asiainfo.struts.pojo;

public class Point {
	private int i;

	private int j;

	public int getI() {
		return i;
	}

	public void setI(int i) {
		this.i = i;
	}

	public int getJ() {
		return j;
	}

	public void setJ(int j) {
		this.j = j;
	}

}
action类:这里我接受一个对象,而不是一个字符串,所以这里我们就需要做类型转换
package com.asiainfo.struts.action;

import com.asiainfo.struts.pojo.Point;

public class ConvertAction {
	private Point point;

	public Point getPoint() {
		return point;
	}

	public void setPoint(Point point) {
		this.point = point;
	}

    public String execute() {
    	 System.out.println(point.getI()+"..."+point.getJ());
         return "success";
	}	
}
定义转换器:继承StrutsTypeConverter类

package com.asiainfo.struts.convert;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

import com.asiainfo.struts.pojo.Point;

public class PointConvert extends StrutsTypeConverter{

	public Object convertFromString(Map context, String[] values, Class toClass) {
		Point point =null;
		String[] value = values[0].split(",");
		if(value!=null&&value.length>0){
			point=new Point();
			point.setI(Integer.parseInt(value[0]));
			point.setI(Integer.parseInt(value[1]));
		}
		
		return point;
	}

	public String convertToString(Map context, Object o) {
		return null;
	}

}
配置文件:文件名xwork-conversion.properties  这个格式是固定的

com.asiainfo.struts.pojo.Point=com.asiainfo.struts.convert.PointConvert
这里的意思,就是实体类point通过转换器PointConvert来转换

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值