难道大家都只用jstl+el,懂ognl的大神快来救我啊!

moonhow007 2015-07-27 04:52:38
数据库中的日期是Long型的,在JSP中使用ognl的<s:iterator>标签,源码如下:
<s:iterator value="users">
<tr>
<td><s:property value="userid"/></td>
<td><s:property value="name"/></td>
<td>
<s:if test="gender=='M'">男</s:if>
<s:elseif test="gender=='F'">女</s:elseif>
<s:else>未知</s:else>
</td>
<td><s:property value="salary"/></td>
<%-- lastLoginTime是Long型日期,如何转换为Date型显示 --%>
<td><s:property value="lastLoginTime"/></td>
</tr>
</s:iterator>
问题:lastLoginTime是Long型日期,如何转换为Date型显示?
...全文
157 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
scmod 2015-07-29
  • 打赏
  • 举报
回复
引用 4 楼 mhsfw007 的回复:
[quote=引用 2 楼 scmod 的回复:] loginTime的get方法直接转换下 或者sql时候貌似也能直接转日期取出来 long类型取出来时候set进去时候不会自动转成date的啊原来? 一般不是字段就是date或者timestamp 楼主这个是number的?
数据库mySQL 用的BIGINT类型的[/quote] 哦..那保存的就是number一样的.....不是date那样拿出来就能用的...
moonhow007 2015-07-29
  • 打赏
  • 举报
回复
引用 2 楼 scmod 的回复:
loginTime的get方法直接转换下 或者sql时候貌似也能直接转日期取出来 long类型取出来时候set进去时候不会自动转成date的啊原来? 一般不是字段就是date或者timestamp 楼主这个是number的?
数据库mySQL 用的BIGINT类型的
  • 打赏
  • 举报
回复
两种办法: 1、你的Long型日期在后台转成String,并格式化出来显示 2、你自定义一个函数,在页面上调用,然后将Long型日期格式化成你想要的格式
<li>下单时间:${zagofn:fmt(order.createTime,"yyyy-MM-dd HH:mm:ss" )}</li>
比如我上面的方式就是自定义了一个函数,然后传入日期格式 tld 的配置文件里面:
<function>
        <description>Long change Date</description>
        <name>fmt</name>
        <function-class>com.cq2022.zago.base.taglib.DateFormatFunctions</function-class>
        <function-signature>java.lang.String fmt(java.lang.Long,java.lang.String)</function-signature>
    </function>
后台函数方法,将Long转成字符串显示:
public static String fmt(Long date, String format) {
        if (date == null || StringUtils.isEmpty(format)) return "";
        return DateUtils.long2String(date, format);
    }
scmod 2015-07-27
  • 打赏
  • 举报
回复
loginTime的get方法直接转换下 或者sql时候貌似也能直接转日期取出来 long类型取出来时候set进去时候不会自动转成date的啊原来? 一般不是字段就是date或者timestamp 楼主这个是number的?
叶半欲缺 2015-07-27
  • 打赏
  • 举报
回复
有一种方法:间接赋值,你在实体类,名一个Long型的loginTime 在命一个Date型的lastLoginTime。在jsp页面用 <td><s:property value="loginTime"/></td>你在程序控制层或service层进行转换,将long型的loginTime变量转换成Date型的lastLoginTime变量
今天做项目,用到了el表达式和jstl,在tomcat6.0上跑得好好的,没想到copy到tomcat5.5后,服务器起不来了,是tomcat版本的问题。查阅了不少资料,现在总结如下: 错误信息: java.lang.NoClassDefFoundError: javax/el/ExpressionFactory 分析:少包,上网查阅后发现解决方法 解决方法:将javaee.jar包再copy一份放在tomcat目录的common\lib下 如上完成后即解决了该异常,大以为大功告成,没想到又出现了新异常 错误信息:java.lang.NoSuchMethodError: javax.servlet.JSP.PageContext.getELContext()LJAVAx/el/ELContext 分析:这个问题网上找了半天没看到解决方法,只好自己想办法。想起先前看到的一个知识点:tomcat 6 实现了 servlet 2.5 和JSP2.1的规范相应的 tomcat 5 实现的是 2.4和2.0,想到tomcat5不支持JSTL1.2,于是替换JSTL1.1的包试试看后,问题解决 解决方法:移出工程lib目录中的JSTL1.2.jar,添加standard-1.1.jar和JSTL1.1.jar 总结: jstl1.1版本由2个必要包构成:standard-1.1.jar和JSTL1.1.jar;而jstl1.1版本只有一个必要包JSTL1.2.jar。(一开始在替换的过程中想当然的用JSTL1.1.jar换JSTL1.2.jar,然后遗漏了standard-1.1.jar,耽搁了不少时间。) 经测试,tomcat6.0支持JSTL1.2版本,也支持JSTL1.1版本;tomcat5.5只支持JSTL1.1(JSTL1.1一下版本未测试) 不建议将2个版本的3个包同时放在工程中,可能会发生版本冲突。(另外,实际操作的时候发现JSTL1.2.jar和JSTL1.1.jar这2个包放一起可以在tomcat5.5和tomcat6.0上跑,鉴于JSTL1.1.jar里面没有c.tld等文件,猜测JSTL1.1.jar里面只是放置了1.1的专用的类和信息)

67,543

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧