Spring form:使用LocaleResolver输入时区设置?

时间:2014-11-08 05:00:44

标签: jsp spring-mvc timezone

试图弄清楚Spring的时区处理是如何运作的。时区转换似乎适用于<fmt:formatDate>代码,但无法用于Spring自己的<form:input>代码。我有一个简单的测试JSP:

Plain: ${dateTest.date}
Fmt: <fmt:formatDate value="${dateTest.date}" type="both" dateStyle="long" timeStyle="long"/>

<form:form action="..." commandName="dateTest">
  Form: <form:input path="date"/>
  <button type="submit">Test</button>
</form>

在控制器端 - 非常简单的控制器,它只响应提交时收到的值。在配置中 - localeResolver设置为测试解析器,它始终以Europe/Moscow(MSK)作为时区返回(本地时区为PST)

首次显示JSP页面时输出如下:

Plain: Fri Nov 07 20:43:51 PST 2014
Fmt: November 8, 2014 8:43:51 MSK AM

Form: [07/11/2014]

时区转换似乎适用于<fmt>输出 - 时区为MSK,但表单字段中的日期设置为&#34; 7/11&#34;,这是一个本地时区日期(太平洋标准时间)。

在控制器端,RequestContext.getTimezone()返回正确的(MSK)时区。

标签似乎没有转换,但Spring文档(16.9.1)声明1&#34;日期/时间转换器和注册的Formatter对象将自动使用时区信息Spring的ConversionService。&#34;

有没有人遇到过/解决过这个问题?您通常如何处理<form:input>代码的时区转换?

0 个答案:

没有答案