package com.converter;import java.util.Map;import ognl.DefaultTypeConverter;import com.bean.Point;public class PointConverter extends DefaultTypeConverter
{
  @Override
  public Object convertValue(Map context,Object value,Class toType)
  {
  if(Point.class==toType)
  {
  Point point=new Point();
  String[] str=(String[])value;
  String[] paramValue=str[0].split(",");
  int x=Integer.parseInt(paramValue[0]);
  int y=Integer.parseInt(paramValue[1]);
  point.setX(x);
  point.setY(y);
  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;
  }
}
就是参数问题,我不太理解方法里面的参数toType,toType是要转换的类型,那么Point.class=toType是什么意思?toType参数我并不知道是什么,那么Point.class==toType不是应该为false吗?同样的String.class==toType ,这两句实在让我费解,请手们指教! 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【symjie520】截止到2008-07-16 20:13:07的历史汇总数据(不包括此帖):
    发帖的总数量:18                       发帖的总分数:370                      每贴平均分数:20                       
    回帖的总数量:6                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:7                        结贴的总分数:140                      
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:11                       未结的总分数:230                      
    结贴的百分比:38.89 %               结分的百分比:37.84 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   

    totype就是你要转换的类型,打个比方说,你表单提交到一个action里面有一个是Point类,类里有int x;int y;两个属性个自有setter,getter方法.那你在页面的一个text里写x,y提交到action里的是一个字符串,你必须要把这个字符串变拆开把x给point里的X属性,Y给Y属性,那么系统肯定不能做到这一点所以你就要写这么一类来转换他,当你提交的时候是string给Point里的属性赋值,所以就那你的totype就是point这个能理解吧所以就在方法里判断如果Point.class==toType的时候就把string拆开给两个属性赋值.第二个方法就是在另一个页面要显示这个point的值,那就是要由point转成string好在页面显示吧.那它的toType是不是就是string.那就是说如果toType==string.class的时候是把Point对象转成一个string你自己在好好看看方法里面吧
      

  3.   

    也就是说当我提交的时候,传进去的参数,Object value是个String类型的,同时,根据properties文件,Class toType就是Point类型的!
    这样理解对吗?