快速业务通道

Struts2中的参数传递 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
r.getGender());      return super.execute();    }    // setters and getters }

通过上面的代码,就完成了对枚举类型的赋值。不过这里有一点需要特别指出:那就是XWork在XWork-2.1.X的版本之前,枚举类型不被默认支持。如果你需要获得枚举类型的自动赋值,还需要增加一个配置文件xwork-conversion.properties到classpath下:

Java代码

java.lang.Enum=com.opensymphony.xwork2.util.EnumTypeConverter

对于使用新的版本的XWork的朋友,则不需要增加这个配置文件。

Struts2中的参数传递(3)

时间:2011-02-04

Date类型

XWork默认是支持Date类型的转化的。不过从源码上来看,貌似我们很难用上它默认的类型转化。

Java代码

private Object doConvertToDate(Map context, Object value, Class toType) {      Date result = null;      if (value instanceof String && value != null && ((String) value).length() > 0) {        String sa = (String) value;        Locale locale = getLocale(context);        DateFormat df = null;        if (java.sql.Time.class == toType) {          df = DateFormat.getTimeInstance(DateFormat.MEDIUM, locale);        } else if (java.sql.Timestamp.class == toType) {          Date check = null;          SimpleDateFormat dtfmt = (SimpleDateFormat) DateFormat.getDateTimeInstance(DateFormat.SHORT,              DateFormat.MEDIUM,              locale);          SimpleDateFormat fullfmt = new SimpleDateFormat(dtfmt.toPattern() + MILLISECOND_FORMAT,              locale);          SimpleDateFormat dfmt = (SimpleDateFormat) DateFormat.getDateInstance(DateFormat.SHORT,              locale);          SimpleDateFormat[] fmts = {fullfmt, dtfmt, dfmt};          for (int i = 0; i < fmts.length; i++) {            try {              check = fmts[i].parse(sa);              df = fmts[i];              if (check != null) {                break;              }            } catch (ParseException ignore) {            }          }        } else if (java.util.Date.class == toType) {          Date check = null;          SimpleDateFormat d1 = (SimpleDateFormat) DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG, locale);          SimpleDateFormat d2 = (SimpleDateFormat) DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, locale);          SimpleDateFormat d3 = (SimpleDateFormat) DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);          SimpleDateFormat rfc3399 = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ss");          SimpleDateFormat[] dfs = {d1, d2, d3, rfc3399}; //added RFC 3339 date format (XW-473)          for (int i = 0; i < dfs.length; i++) {            try {              check = dfs[i].parse(sa);              df = dfs[i];              if (check != null

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

分享到: 更多

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号