struts2类型转换

1,549次阅读
没有评论

一、定义转换类

package com.createyou.converter;

import java.util.Map;

import ognl.DefaultTypeConverter;

import com.createyou.bean.Point;

public class PointConverter extends DefaultTypeConverter{

 @Override
 public Object convertValue(Map context, Object value, Class toType) {
  // TODO Auto-generated method stub
  if(Point.class==toType){
   Point point=new Point();
   String[] str=(String[])value;
   String[] strParam=str[0].split(",");
   point.setX(Integer.parseInt(strParam[0]));
   point.setY(Integer.parseInt(strParam[1]));
   return point;
  }
  if(String.class==toType){
   Point point=(Point)value;
   int x=point.getX();
   int y=point.getY();
   String result="[x="+x+",y="+y+"]";
   return result;
  }
  return null;
 }
}

二、写properties(视全局或局部而定)
point=com.createyou.converter.PointConverter
三、写action。略

也可以使用strutstypeconverter

遇到类型转换错误的时候(也就是说不能进行类型转换),struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面

类型转换与输入校验的流程

1. 首先Struts2对客户端传来的数据进行类型转换

2. 类型转换完毕后再进行输入校验

3. 如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)

注意:如果类型转换不成功,也同样要进行输入校验

正文完
 

公众号