快速业务通道

在Google App Engine中使用Struts2框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
extConverter, 是针对com.google.appengine.api.datastore.Text对象的转换器,Text是GAE的存储中,大文本内容的保存对象,在业务中很常用。先来看看TextConverter大的代码:

package your.servlet.pkg; import com.google.appengine.api.datastore.Text; import ognl.DefaultTypeConverter; import java.util.Map; public class TextConverter extends DefaultTypeConverter {   @Override   public Object convertValue(Map map, Object o, Class toType) {     if (toType == Text.class) {       String value = ((String[]) o)[0];       return new Text(value);     } else if (toType == String.class) {       Text text = (Text) o;       return text.getValue();     }     return null;   } }

TextConverter的作用主要是用于在WEB页面中,直接显示存储对象中的大文本内容。

另外一个是KeyConverter,是对com.google.appengine.api.datastore.Key对象的转换器,Key是GAE中三种主键(Long,String,Key)的一种,在接收请求数据以及页面显示的时候,会经常用到。直接看代码:

package your.servlet.pkg; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.KeyFactory; import ognl.DefaultTypeConverter; import java.util.Map; public class KeyConverter extends DefaultTypeConverter {   @Override   public Object convertValue(Map map, Object o, Class toType) {     if (toType == Key.class) {       String s = ((String[]) o)[0];       return KeyFactory.stringToKey(s);     } else if (toType == String.class) {       Key k = (Key) o;       return KeyFactory.keyToString(k);     }     return null;   } }

在源代码的根目录,创建xwork-conversion.properties文件,内容如下:

com.google.appengine.api.datastore.Text=your.servlet.pkg.TextConverter  com.google.appengine.api.datastore.Key=your.servlet.pkg.KeyConverter

上面的工作都完成以后,就可以在你的Action里面直接使用Key类型的类变量,无需手工去做String和Key之间的转换!

Convention Plugin不能使用

Struts2里面,最常用的Plugin应该是Convertion了,"零配置"即减少了写配置文件的麻烦,代码的组织结构看起来也清晰很多。

但是在GAE里面,无法读取文件系统,目前的Convertion版本还无法正常工作,非常可惜。不过建议你的GAE应用中,Action和JSP文件,还是按照Convertion Plugin的组织方式来存放,一方面有利于后面的升级和迁移工作,另一方面也让你的应用的文件看起来更清晰。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

21411.htm" title="Linux下的Vsftpd配置篇" target="_blank">Linux下的Vsftpd配置篇
  • DIV和table页面布局的区别和联系
  • 如何实现二维向量 - 编程入门网
  • 网络营销公司在运营中的策略
  • iBATIS 3内的新特性:将iBATIS用作应用程序内的一种持久框架 - 编程入门网
  • Photoshop绘制高光水晶质感水晶苹果
  • Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

    地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

    电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

    《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号