Я пытаюсь изменить пример Spring JSP, чтобы использовать freemarker.
Я изменил все поля в форме примерно так:
<@ spring.formInput "account.name" />
Все работало хорошо. Форма привязана к объекту, и все было проверено, но я не могу заставить эту часть работать.
<@ spring.formInput "account.renewalDate" />
В jsp это было
renewalDate - это объект java.util.Date. Страница открывается, и ошибка начинается там, где должно быть поле ввода даты.
Метод публичный
org.springframework.web.servlet.support.BindStatus
org.springframework.web.servlet.support.RequestContext.getBindStatus (java.lang.String)
бросает java.lang.IllegalStateException
бросил исключение при вызове на
org.springframework.web.servlet.support.RequestContext@1b5c22f
с аргументами типов
[java.lang.String,] Проблематично
инструкция: ---------- ==>
назначение:
состояние = springMacroRequestContext.getBindStatus (путь)
[в строке 120, столбец 9 в spring.ftl]
в пользовательской директиве bind [в строке 159,
колонка 5 в весен.фтл] в
пользовательская директива spring.formInput [on
строка 36, столбец 41 в createForm.ftl]
---------- Java backtrace для программистов: ----------
freemarker.template.TemplateModelException:
Метод публичный
org.springframework.web.servlet.support.BindStatus
org.springframework.web.servlet.support.RequestContext.getBindStatus (java.lang.String)
бросает java.lang.IllegalStateException
бросил исключение при вызове на
org.springframework.web.servlet.support.RequestContext@1b5c22f
с аргументами типов
[java.lang.String,] в
freemarker.ext.beans.OverloadedMethodModel.exec (OverloadedMethodModel.java:134)
в
freemarker.core.MethodCall._getAsTemplateModel (MethodCall.java:93)
в
freemarker.core.Expression.getAsTemplateModel (Expression.java:89)
в
freemarker.core.Assignment.accept (Assignment.java:90)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.IfBlock.accept (IfBlock.java:82)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.MixedContent.accept (MixedContent.java:92)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.Macro $ Context.runMacro (Macro.java:172)
в
freemarker.core.Environment.visit (Environment.java:603)
в
freemarker.core.UnifiedCall.accept (UnifiedCall.java:106)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.MixedContent.accept (MixedContent.java:92)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.Macro $ Context.runMacro (Macro.java:172)
в
freemarker.core.Environment.visit (Environment.java:603)
в
freemarker.core.UnifiedCall.accept (UnifiedCall.java:106)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.MixedContent.accept (MixedContent.java:92)
в
freemarker.core.Environment.visit (Environment.java:210)
в
freemarker.core.Environment.process (Environment.java:190)
в
freemarker.template.Template.process (Template.java:237)
в
org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate (FreeMarkerView.java:366)
в
org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender (FreeMarkerView.java:283)
в
org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel (FreeMarkerView.java:233)
в
org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel (AbstractTemplateView.java:167)
в
org.springframework.web.servlet.view.AbstractView.render (AbstractView.java:250)
в
org.springframework.web.servlet.DispatcherServlet.render (DispatcherServlet.java:1060)
в
org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:798)
в
org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:716)
вorg.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:647)
в
org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:552)
в
javax.servlet.http.HttpServlet.service (HttpServlet.java:707)
в
javax.servlet.http.HttpServlet.service (HttpServlet.java:820)
в
org.eclipse.jetty.servlet.ServletHolder.handle (ServletHolder.java:530)
в
org.eclipse.jetty.servlet.ServletHandler.doHandle (ServletHandler.java:427)
в
org.eclipse.jetty.server.handler.ScopedHandler.handle (ScopedHandler.java:119)
в
org.eclipse.jetty.security.SecurityHandler.handle (SecurityHandler.java:494)
в
org.eclipse.jetty.server.session.SessionHandler.handle (SessionHandler.java:182)
в
org.eclipse.jetty.server.handler.ContextHandler.doHandle (ContextHandler.java:933)
в
org.eclipse.jetty.servlet.ServletHandler.doScope (ServletHandler.java:362)
в
org.eclipse.jetty.server.handler.ContextHandler.doScope (ContextHandler.java:867)
в
org.eclipse.jetty.server.handler.ScopedHandler.handle (ScopedHandler.java:117)
в
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle (ContextHandlerCollection.java:245)
в
org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:113)
в
org.eclipse.jetty.server.Server.handle (Server.java:330)
в
org.eclipse.jetty.server.HttpConnection.handleRequest (HttpConnection.java:559)
в
org.eclipse.jetty.server.HttpConnection $ RequestHandler.headerComplete (HttpConnection.java:992)
в
org.eclipse.jetty.http.HttpParser.parseNext (HttpParser.java:541)
в
org.eclipse.jetty.http.HttpParser.parseAvailable (HttpParser.java:203)
в
org.eclipse.jetty.server.HttpConnection.handle (HttpConnection.java:406)
в
org.eclipse.jetty.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:462)
в
org.eclipse.jetty.util.thread.QueuedThreadPool $ 2.run (QueuedThreadPool.java:436)
на java.lang.Thread.run (неизвестно
Источник) Вызывается:
org.springframework.core.convert.ConversionFailedException:
Невозможно преобразовать значение сб. Мар 05
15:49:22 EET 2011 от типа
'java.util.Date' для ввода
'Java.lang.String'; вложенное исключение
является java.lang.IllegalStateException:
Библиотека JodaTime недоступна -
@DateTimeFormat не поддерживается в
org.springframework.core.convert.support.ConversionUtils.invokeConverter (ConversionUtils.java:40)
в
org.springframework.core.convert.support.GenericConversionService.convert (GenericConversionService.java:138)
в
org.springframework.validation.AbstractPropertyBindingResult.formatFieldValue (AbstractPropertyBindingResult.java:122)
в
org.springframework.validation.AbstractBindingResult.getFieldValue (AbstractBindingResult.java:227)
в
org.springframework.web.servlet.support.BindStatus. (BindStatus.java:120)
в
org.springframework.web.servlet.support.RequestContext.getBindStatus (RequestContext.java:726)
в
sun.reflect.NativeMethodAccessorImpl.invoke0 (Native
Метод) в
sun.reflect.NativeMethodAccessorImpl.invoke (Неизвестно
Источник) в
sun.reflect.DelegatingMethodAccessorImpl.invoke (Неизвестно
Источник) в
java.lang.reflect.Method.invoke (Неизвестно
Источник) в
freemarker.ext.beans.BeansWrapper.invokeMethod (BeansWrapper.java:840)
в
freemarker.ext.beans.OverloadedMethodModel.exec (OverloadedMethodModel.java:104)
... еще 54 причины:
java.lang.IllegalStateException:
Библиотека JodaTime недоступна -
@DateTimeFormat не поддерживается в
org.springframework.format.support.FormattingConversionServiceFactoryBean $ NoJodaDateTimeFormatAnnotationFormatterFactory.getPrinter (FormattingConversionServiceFactoryBean.java:131)
в
org.springframework.format.support.FormattingConversionServiceFactoryBean $ NoJodaDateTimeFormatAnnotationFormatterFactory.getPrinter (FormattingConversionServiceFactoryBean.java:1)
в
org.springframework.format.support.FormattingConversionService $ 1.Convert (FormattingConversionService.java:78)
вorg.springframework.core.convert.support.ConversionUtils.invokeConverter (ConversionUtils.java:37) ... еще 65