Struts2的类型转换器

(本文的参考资料是Java Web开发 应用详解 独门架构)

首先我们要明白一点:

在Web应用中,所有的请求参数都是以字符串形式的,但是有时候我们需要获取这些参数,进行用Java进行处理,这时,就需要进行类型转换了。

Struts2的类型转换有三种方式:

内置类型转换器;

ognl类型转换器;

Struts类型转换器

这三种方式各有优缺点,在这里就不多做比较了。

现在我以Struts类型转换器为例,进行说明:

首先新建一个Product类:

public class Product {
	private String name;
	private float price;
	private int count;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name=name;
	}
	
	public float getPrice() {
		return price;
	}
	public void setPrice(float price){
		this.price=price;
	}
	
	public int getCount(){
		return count;
	}
	public void setCount(int count){
		this.count=count;
	}
}
然后在新建一个Action类:

public class ProductAction extends ActionSupport {
	private Product product;
	
	public void setProduct(Product product){
		this.product=product;
	}
	
	public Product getProduct(){
		return product;
	}
	
	public String execute(){
		return SUCCESS;
	}
}

好了,现在开始写Struts类型转换器,我们要继承抽象类StrutsTypeConverter,并且实现其中的两个抽象方法:

//字符串转换成目标类型
public abstract Object convertFromString(Map context, String[] values, Class toClass);
//目标类型转换成字符串
public abstract String convertToString(Map context, Object o);
现在Struts转换器类型是
public class StrutsProductConverter extends StrutsTypeConverter{

	@Override
	public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
		// TODO Auto-generated method stub
		Product product = new Product();
		String[] productValues = arg1[0].split(",");
		product.setName(productValues[0].trim());
    	product.setPrice(Float.parseFloat(productValues[1].trim()));
    	product.setCount(Integer.parseInt(productValues[2].trim()));
    	System.out.println("我执行的是Struts2中默认的转换器");
    	return product;
	}

	@Override
	public String convertToString(Map arg0, Object arg1) {
		// TODO Auto-generated method stub
		Product product = new Product();
		return product.getName()+","+product.getPrice()+","+product.getCount();
	}

}

然后再写一个配置文件名字是:xwork-conversion.prpperties,该文件中的内容是:

包名.Product=包名.转换器类

在本例中,Product类所在的包是product,StrutsProductConverter类所在的包是converter,所以在文件中应该写:

product.Product = converter.StrutsProductConverter



再者就是一些struts.xml,web.xml文件的常见配置,还有就是常见的几个jsp页面,在这里就不多写了。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值