- 浏览: 460086 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
a464697691:
楼主厉害,现在可以使用了
Proxool houseKeepingSleepTime bug修正 -
chenpi529:
楼主好牛逼
Proxool houseKeepingSleepTime bug修正 -
huangxinyu_it:
多谢楼主了
Proxool houseKeepingSleepTime bug修正 -
kokorodo:
谢谢了!
zk中文开发手册pdf版(基于3.5.1) -
superscorpio:
public void testImportInContex ...
MVEL2.0控制流
注解日期时间转换类使用到了日期工具类DateUtils
package org.sunflower.common.web.converter; import java.text.ParseException; import java.util.Date; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.metainfo.Annotation; import org.zkoss.zk.ui.sys.ComponentCtrl; import org.zkoss.zkplus.databind.TypeConverter; import org.sunflower.common.util.CheckExceptionConverter; import org.sunflower.common.util.DateUtils; /** * 日期时间转换函数 * <p> * {@link #coerceToUi(Object, Component)}支持的格式为 * <ol> * <li>datetime:yyyy-MM-dd HH:mm:ss</li> * <li>date:yyyy-MM-dd</li> * <li>time:HH:mm:ss</li> * <li>自定义:模式规则与<code>java.text.SimpleDateFormat</code>pattern相同</li> * </ol> * * 例如:默认使用日期时间模式 * <p> * <ol> * <li>日期时间模式:<label value="@{account.createTime,converter='org.sunflower.common.web.zk.converter.DatetimeConverter'}" * self="@{format('datetime')}"/> * <li>日期模式:<label value="@{account.createTime,converter='org.sunflower.common.web.zk.converter.DatetimeConverter'}" * self="@{format('date')}"/> * <li>时间模式:<label value="@{account.createTime,converter='org.sunflower.common.web.zk.converter.DatetimeConverter'}" * self="@{format('time')}"/> * <li>自定义模式:<label value="@{account.createTime,converter='org.sunflower.common.web.zk.converter.DatetimeConverter'}" * self="@{format('yyyy年MM月dd日 HH时mm分ss秒')}"/> * </ol> * * @author sunflower */ public class DatetimeConverter implements TypeConverter { public static final String PATTERN_DATETIME = "datetime"; public static final String PATTERN_DATE = "date"; public static final String PATTERN_TIME = "time"; private static final Logger log = LoggerFactory .getLogger(DatetimeConverter.class); @Override public Object coerceToBean(Object strDatetime, Component comp) { // 忽略null string if (strDatetime == null) { return ""; } // 忽略非String类型日期格式,并错误警告 if (!(strDatetime instanceof String)) { log.error("组件{}绑定的对象应为String类型,您使用的类型是{}!", comp.getClass() .getName(), strDatetime.getClass().getName()); return ""; } String date = (String) strDatetime; final Annotation annot = ((ComponentCtrl) comp).getAnnotation("format"); String pattern = null; try { if (annot != null) { pattern = annot.getAttribute("value"); if (StringUtils.equalsIgnoreCase(PATTERN_DATETIME, pattern)) { return DateUtils.parseDatetime(date); } else if (StringUtils.equalsIgnoreCase(PATTERN_DATE, pattern)) { return DateUtils.parseDate(date); } else if (StringUtils.equalsIgnoreCase(PATTERN_TIME, pattern)) { return DateUtils.parseTime(date); } else { return DateUtils.parseDatetime(date, pattern); } } return DateUtils.parseDatetime(date); } catch (ParseException e) { throw CheckExceptionConverter.convertToRuntimeException(e); } } @Override public Object coerceToUi(Object dt, Component comp) { // 忽略null bean,并警告 if (dt == null) { log.warn("组件" + comp.getClass().getSimpleName() + "绑定的日期为null!"); return ""; } // 忽略非日期类型对象,并错误警告 if (!(dt instanceof Date)) { log.error("组件{}绑定的对象应为java.util.Date类型或者其泛化类,您帮的类型是{}!", comp .getClass().getName(), dt.getClass().getName()); return ""; } Date date = (Date) dt; final Annotation annot = ((ComponentCtrl) comp).getAnnotation("format"); String pattern = null; if (annot != null) { pattern = annot.getAttribute("value"); if (StringUtils.equalsIgnoreCase(PATTERN_DATETIME, pattern)) { return DateUtils.formatDatetime(date); } else if (StringUtils.equalsIgnoreCase(PATTERN_DATE, pattern)) { return DateUtils.formatDate(date); } else if (StringUtils.equalsIgnoreCase(PATTERN_TIME, pattern)) { return DateUtils.formatTime(date); } else { return DateUtils.formatDatetime(date, pattern); } } return DateUtils.formatDatetime(date); } }
发表评论
-
zkspring 3.0RC bug 修复
2010-11-19 15:46 1869zkspring 3.0RC bug 修复 ... -
【zk开发】使用Sessions.getCurrent().invalidate()时需要特别注意到问题
2010-11-15 16:25 2440Sessions.getCurrent().invali ... -
【zk开发】use和apply的区别
2010-11-15 14:03 4563use 使用一个组件类,该类必须是当前组件 ... -
【zk开发】java代码给组件添加客户端事件处理javascript
2010-11-10 10:49 1837/** *设置或删除widget的事件监听器,如 ... -
【zk开发】zk中的表单验证(优化版)
2010-11-10 10:41 2402/** * 验证表单 * <p> ... -
【zk开发】ZkUtils 1.2
2010-11-08 10:22 2794ZkUtils 是zk开发中的一些工具方法集合,将散落在 ... -
ZK 5.0.5 chm api文档
2010-11-03 10:11 5876ZK 5.0.5 chm api文档 文档在附件 ... -
ZK 5.0.5正式版发布
2010-11-02 18:24 1188ZK 5.0.5正式版发布 更新日志http: ... -
【zk开发】理解zk事件处理线程
2010-11-01 17:27 2290什么是事件处理线程(EventProcessingTh ... -
【zk开发】zkstudio安装及使用视屏
2010-10-29 16:58 2213安装视屏 http://docs.zkoss ... -
zk5.0.5可能最近两天发布
2010-10-29 13:13 1095zk5.0.5可能最近两天发布 zk5.0 ... -
【zk开发】zk注解的秘密
2010-10-28 14:26 4002The DataBinder that rea ... -
【zk开发】zk内存监控
2010-10-21 09:03 2812所用到的资源 ... -
【zk开发】如何在页面中获得composer对象
2010-10-15 15:31 2640样例: <window id=&qu ... -
【zk开发】jQuery+zk完美客户端
2010-09-14 11:11 2585(function(window) { var lin ... -
【zk开发】zk5.0.4 datebox inplace模式的bug
2010-09-08 16:24 1626zk5.0.4 datebox inplace模式 ... -
使用ZK CE版开发商业软件
2010-09-07 15:50 2481仔细读一下内容 LGPL(GNU Lesser Gene ... -
【zk开发】zk的国际化
2010-09-02 16:22 3824【zk开发】zk的国际化 一,准备资源文件 ... -
zk5.0.4 chm版API
2010-09-01 12:37 1271zk5.0.4 chm版API -
挥起马鞭,升到zk5.0.4
2010-08-31 23:22 1440由于zk5.0.4测试版已发布公开测试,正式版应该很快出 ...
相关推荐
这在处理不同类型的数据显示或处理用户输入时非常有用,例如将日期字符串转换为日期对象,或将货币数值格式化为指定的格式。 6. 表达式语言:ZK支持一种称为ZK EL(ZK Expression Language)的表达式语言,用于在...
- **java.time包**:取代了旧的java.util.Date和Calendar,提供了更加易用、强大的日期和时间处理功能,如LocalDate、LocalTime、LocalDateTime、ZonedDateTime等类。 3. **默认方法**: - 接口中引入了默认方法...
Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...
使用这种工具,用户无需将PDF转换为其他格式(如Word),从而避免了格式转换可能导致的排版失真问题。 PDF文件的合并过程通常包括以下几个步骤: 1. **导入文件**:首先,用户需要选择要合并的PDF文档。大多数PDF...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...
J2C 将 Java 代码转成 C++ 代码,这是源码级别的转换,输出的 C++ 代码是有效的代码。 OSGi 分布式通讯组件 R-OSGi R-OSGi 是一套适用于任意满足 OSGi 架构的分布式通讯组件。它以 jar 的形式发布,部署容易,使用...