struts 类型转换器

类型转换

(来自尚学堂)

 

a)      默认转换

i.       日期处理

b)      写自己的转换器:

public class MyPointConverter extends DefaultTypeConverter{

 

         @Override

         public Object convertValue(Object value, Class toType) {

                   if(toType == Point.class) {

                            Point p = new Point();

                            String[] strs = (String[])value;

                            String[] xy = strs[0].split(",");

                            p.x = Integer.parseInt(xy[0]);

                            p.y = Integer.parseInt(xy[1]);

                            return p;

                   }

                   if(toType == String.class) {

                            return value.toString();

                   }

                   return super.convertValue(value, toType);

         }

 

}

public class MyPointConverter extends StrutsTypeConverter{

 

 

 

         @Override

         public Object convertFromString(Map context, String[] values, Class toClass) {

                  

                            Point p = new Point();

                            String[] strs = (String[])values;

                            String[] xy = strs[0].split(",");

                            p.x = Integer.parseInt(xy[0]);

                            p.y = Integer.parseInt(xy[1]);

                            return p;

                  

                  

         }

 

         @Override

         public String convertToString(Map context, Object o) {

                   // TODO Auto-generated method stub

                   return o.toString();

         }

 

}

 

c)      三种注册方式:

i.       局部:XXXAction-conversion.properties

1.      p(属性名称) =  converter

ii.      全局:xwork-conversion.properties

1.      com.xxx.XXX(类名)= converter

iii.     Annotation

d)      如果遇到非常麻烦的映射转换

i.       request.setAttribute();

ii.      session

 

posted @   剑握在手  阅读(172)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
返回顶部↑
点击右上角即可分享
微信分享提示