2010-03-05 11 views
0

J'essaie de changer un exemple de source jsp pour utiliser freemarker.changement de source jsp date entrée de liaison sous une forme pour utiliser freemarker

j'ai changé tous les champs sous une forme quelque chose comme ceci: < @ spring.formInput "account.name" />

Tout a fonctionné bien. Formulaire lié à l'objet et tout a été validé, mais je ne peux pas faire fonctionner cette partie.

< @ spring.formInput "account.renewalDate" /> En jsp il était

RENEWALDATE est un objet java.util.Date. La page s'ouvre et l'erreur commence là où le champ de saisie de date doit être.

Méthode publique org.springframework.web.servlet.support.BindStatus org.springframework.web.servlet.support.RequestContext.getBindStatus (java.lang.String) jette java.lang.IllegalStateException jeté une exception lorsqu'elle est invoquée sur [email protected] avec des arguments de type [java.lang.String,] L'instruction problématique: ---------- == > Affectation: status = springMacroRequestContext.getBindStatus (chemin) [sur la ligne 120, colonne 9 dans s pring.ftl] dans user-directive bind [sur la ligne 159, colonne 5 dans spring.ftl] dans directive utilisateur spring.formInput [sur ligne 36, colonne 41 dans createForm.ftl] ----- ----- Java backtrace pour les programmeurs: ---------- freemarker.template.TemplateModelException: Méthode publique org.springframework.web.servlet.support.BindStatus org.springframework.web.servlet .support.RequestContext.getBindStatus (java.lang.String) lance java.lang.IllegalStateException a lancé une exception lorsqu'elle est appelée sur [email protected] avec des arguments de types [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) au freemarker.core.Environment.visit (Environment.java:210) at freemarker.core.MixedContent.accept (mixte Content.java:92) à freemarker.core.Environment.visit (Environment.java:210) à freemarker.core.Macro $ Context.runMacro (Macro.java:172) à freemarker.core.Environment .Visite (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) au freemarker.core.Environment.visit (Environment.java:210) au 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) au org.springframework.web.servlet.view.AbstractView.render (AbstractView.java:250) at 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 (Information inconnue Source) causée par: org.springframework.core.convert.ConversionFailedException: Impossible de Conver t valeur Sat Mar 05 15:49:22 EET 2011 à partir du type 'java.util.Date' à type 'java.lang.String'; exception imbriquée est java.lang.IllegalStateException: bibliothèque JodaTime non disponible - @DateTimeFormat pas pris en charge à 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) at org.springframework.web.servlet.support.BindStatus. (BindStatu s.java:120) à org.springframework.web.servlet.support.RequestContext.getBindStatus (RequestContext.java:726) à sun.reflect.NativeMethodAccessorImpl.invoke0 (natif Method) à sun.reflect. NativeMethodAccessorImpl.invoke (Information inconnue Source) à sun.reflect.DelegatingMethodAccessorImpl.invoke (Information inconnue Source) à java.lang.reflect.Method.invoke (Information inconnue Source) à freemarker.ext.beans.BeansWrapper.invokeMethod (BeansWrapper.java:840) à freemarker.ext.beans.OverloadedMethodModel.exec (OverloadedMethodModel.java:104) ... 54 plus Causée par: java.lang.IllegalStateException: bibliothèque JodaTime non disponible - @DateTimeFormat pas pris en charge à 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.Convertir $ (FormattingConversionService.java:78) à org.springframework.core.convert.support .ConversionUtils.invokeConverter (ConversionUtils.j ava: 37) ... 65 plus

Répondre

2

Regardez la cause:

Causée par: java.lang.IllegalStateException: bibliothèque JodaTime non disponible - @DateTimeFormat pas pris en charge à

Votre champ renewalDate est annotées avec @DateTimeFormat, qui ne fonctionne pas à moins que vous ajoutez JodaTime au classpath.