您的位置:首页 > 编程语言 > Java开发

Struts2的类型转换器

2016-05-24 17:33 344 查看
(本文的参考资料是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页面,在这里就不多写了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: