【问题标题】:JSTL accessing c:set variable and convert with SimpleDateFormat [duplicate]JSTL访问c:set变量并使用SimpleDateFormat进行转换[重复]
【发布时间】:2015-08-03 07:30:54
【问题描述】:

我有以下源代码:

<c:set var="runtimeEnd" value="${content.valueList.Promotion[0].value.RuntimeEnd}"/>

在jsp中是一个数字,代表日期例如:1425769140000

如何在 Java 中访问这个变量?我的意思是当我执行以下操作时,它甚至不会再加载页面了:

<% out.println(${runtimeEnd}); %>

我想在下面的JAVA代码中插入变量来显示日期

<% SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMMMMMMMM yyyy");
out.println(simpleDateFormat.format(${runtimeEnd})); %>

【问题讨论】:

    标签: jsp jstl


    【解决方案1】:

    为什么要使用脚本?如果您已经开始使用 jstl 库,请使用它。

    JSTL Format Date library 似乎是你所需要的。

    例子:

    <c:set var="runtimeEnd" value="${content.valueList.Promotion[0].value.RuntimeEnd}"/>
    <fmt:formatDate pattern="yyyy-MM-dd" value="${runtimeEnd}" />
    

    附:要使用 jstl 库打印变量,请使用 &lt;c:out value="This will be printed" /&gt; 标签。

    脚本方法:

    打印:

     <%=pageContext.getAttribute("runtimeEnd") %>
    

    格式:

    <% SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
    String convertedDate = String.valueOf(pageContext.getAttribute("runtimeEnd"));
    %>
    <%=simpleDateFormat.format(convertedDate); %>
    

    【讨论】:

    • @TeaTime 您可以使用 var 键将其存储在 fmt 标签内的变量中,例如 ,如果要打印,请传递输出标签值。
    • 不会工作:
    • @TeaTime 确定 runtimeEnd 的值是什么字符串,然后在 jsp 顶部添加 taglib 声明 java.sun.com/jsp/jstl/fmt" % >
    • @TeaTime 检查我的编辑。
    • 感谢您的帮助 :) 我忘了添加 fmt 库。此外,simpleDateFormat 方式是不必要的,因为表达式语言效果很好
    猜你喜欢
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多