浏览 7012 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-12-22
我得domain model类包含了一个属性java.util.Date beginTime; webwork使用的model driven的方式。 界面上需要显示格式是:yyyy-MM-dd HH:mm,但是用<ww:property value="beginTime"/>似乎webwork默认的转换格式是yy-MM-dd,怎样才能得到yyyy-MM-dd HH:mm呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-12-22
写一个convert:
public class DateConverter extends DefaultTypeConverter { private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");; public Object convertValue(Map ognlContext, Object value, Class toType); { Object result = null; if (toType == Date.class); { result = doConvertToDate(value);; } else if (toType == String.class); { result = doConvertToString(value);; } return result; } private Date doConvertToDate(Object value); { Date result = null; if (value instanceof String); { try { result = sdf.parse((String); value);; } catch (ParseException e); { throw new XworkException("Could not parse date", e);; } } else if (value instanceof Object[]); { // let's try to convert the first element only Object[] array = (Object[]); value; if ((array != null); && (array.length >= 1);); { value = array[0]; result = doConvertToDate(value);; } } else if (Date.class.isAssignableFrom(value.getClass(););); { result = (Date); value; } return result; } private String doConvertToString(Object value); { String result = null; if (value instanceof Date); { result = sdf.format(value);; } return result; } } 可以添加默认的xwork-default-conversion.properties java.util.Date=com.javaeye.core.webwork.converter.DateConverter 也可以写在Domain Model的converter配置里面,具体的内容看webwork文档。 |
|
返回顶楼 | |
发表时间:2004-12-22
我自己写了一些tag实现的,有默认的格式,也可以自定义格式
|
|
返回顶楼 | |
发表时间:2004-12-22
日期的:
package com.jscud.www.tag; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import com.opensymphony.webwork.views.jsp.WebWorkTagSupport; /* * Created Date 2004-12-5 * */ /** * Date的格式化显示,默认格式为yy-MM-dd. * * @author scud * */ public class DateShowTag extends WebWorkTagSupport { private String pattern; private String value; public int doStartTag(); throws JspException { try { JspWriter out = pageContext.getOut();; Date aDate = null; Object aValue = findValue(value);; if (null != aValue); { aDate = ((Date); aValue);; } String sRes = ""; if (null != aDate); { SimpleDateFormat sdfTemp = new SimpleDateFormat(getPattern(););; sRes = sdfTemp.format(aDate);.toString();; } out.print(sRes);; return SKIP_BODY; } catch (IOException ex); { ex.printStackTrace();; throw new JspException(ex.getMessage(););; } } public void setPattern(String pattern); { this.pattern = pattern; } public String getPattern(); { if (null == pattern); { return getDefaultPattern();; } else return pattern; } public void setValue(String value); { this.value = value; } public String getDefaultPattern(); { return "yy-MM-dd"; } } 日期时间的: package com.jscud.www.tag; /* * Created Date 2004-12-5 * */ /** * DateTime的Tag. * * @author scud * */ public class DateTimeShowTag extends DateShowTag { public String getDefaultPattern(); { return "yy-MM-dd HH:mm"; } } |
|
返回顶楼 | |
发表时间:2004-12-22
eway 写道 在使用webwork过程中遇到了这样一个问题:
我得domain model类包含了一个属性java.util.Date beginTime; webwork使用的model driven的方式。 界面上需要显示格式是:yyyy-MM-dd HH:mm,但是用<ww:property value="beginTime"/>似乎webwork默认的转换格式是yy-MM-dd,怎样才能得到yyyy-MM-dd HH:mm呢? webwork cookbook:[url]http://wiki.opensymphony.com/display/WW/How+to+format+dates+and+numbers [/url] 定义一个action或者包的properties文件 在里面按照MessageFormat 定义你的date format 比如 format.date={0,date,yyyy-MM-dd HH:mm} 在jsp页面中用<ww:text>标签 <ww:text name="'format.date'" value0="yourdate" /> |
|
返回顶楼 | |
发表时间:2004-12-22
^_^,太感谢了。三种解决办法都试过,都不错。选用了第一种方式。
但是反过来想一下,如果不是各位webwork前辈指点一下,真的会继续苦恼下去。走更多的弯路。webwork是不错的框架,但是啊,缺憾就是没有文档,我找了很多,都是十分浅易的。没有涉及到这些具体问题的。 如果哪位大哥有比较好的文档,不论中英文,能否共享一下?大家共同进步。谢谢 |
|
返回顶楼 | |
发表时间:2004-12-22
ruby 这个方法真好,而且支持i18n
|
|
返回顶楼 | |
发表时间:2004-12-22
呵呵,问个题外话:怎么长分?怎么有的人帖子发了不少,分数不高,有的人帖子不多,分数不少?
|
|
返回顶楼 | |
发表时间:2004-12-22
那是个摆设,那个功能已经被中途取消了,所以就现在这样了
|
|
返回顶楼 | |