SpringMVC:如何在jsp页面中指定日期格式

时间:2015-01-14 12:02:22

标签: java spring jsp servlets model-view-controller

我的模型定义如下:

public class TM
{
    @DateTimeFormat(pattern = "yyyy.MM.dd HH:mm:ss")
    Date date;

    public Date getDate()
    {
        return date;
    }

    public void setDate(Date date)
    {
        this.date = date;
    }
}

我的控制器定义如下:

@RequestMapping(value = "test")
public ModelAndView func(ModelAndView mav)
{
    TM tm = new TM();
    tm.setDate(new Date());
    mav.addObject("obj", tm);
    mav.setViewName("test/view.jsp");
    return mav;
}

档案view.jsp

${obj.date}

它输出Wed Jan 14 20:00:46 CST 2015,而不是我在“yyyy.MM.dd HH:mm:ss”格式中的预期

SpringMVC的注释@DateTimeFormat对我不起作用。

我知道我可以在jsp页面中使用<fmt:formatDate...来实现同样的目标,但这不是我喜欢的方式,因为我必须在任何地方添加<fmt:formatDate...来打印{{1} } object或Date object。

我只是想知道如何使用sping的TM

来实现这一点

3 个答案:

答案 0 :(得分:0)

您可以使用JSTL:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
...
<fmt:formatDate value="${obj.date}" pattern="yyyy-MM-dd HH:mm:ss" />

答案 1 :(得分:0)

把这个:

<mvc:annotation-driven/>

到dispatcher-servlet.xml。

把这个开头的xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:device="http://www.springframework.org/schema/mobile/device"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mobile/device http://www.springframework.org/schema/mobile/device/spring-mobile-device-1.0.xsd">

答案 2 :(得分:0)

在这里你GO:

您可以使用SimpleDateFormat格式化日期。检查ou JavaDocs,只是一些示例。

**String oldstring = "2011-01-18 00:00:00.0";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldstring);**

String newstring = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(newstring); // 2011-01-18