2017-08-30 1 views
3

i ein biginner im Frühjahr-Boot bin, habe ich diese Tabelle wich haben eine Bearbeitungsschaltfläche für jede ZeileFeder-boot + thymeleaf crud: bearbeiten Sie eine Reihe

<td><a th:href="@{/appel/edit/{id}(id=${appel.id})}">edit</a></td>

dies seine Steuerung:

@RequestMapping(value= "/appel/edit/{id}", method = RequestMethod.GET) 
    public String editapl(@PathVariable("id") Long id, ModelMap model) { 
    model.put("editappel", appelService.findAppelById(id)); 
       return "edit"; 

    } 

, wenn ich sie auf den „bearbeiten“ es soll mich in die Bearbeitungsansicht nehmen, damit ich

Bearbeitung beginnen

<form action="#" th:action="@{/update}" th:object="${editappel}" method="post"> 
 
\t \t \t <div class="form-control"> 
 
\t \t \t \t <label class="header"> id <span>:</span></label> 
 
\t \t \t \t <input type="hidden" id="name" th:field="*{id}"/> 
 
\t \t \t </div> 
 
\t \t 
 
\t \t 
 
\t \t \t <div class="form-control"> \t 
 
\t \t \t \t <label class="header">Service Code <span>:</span></label> \t 
 
\t \t \t \t <input type="tel" id="usrtel" th:field="*{serviceCode}" required=""/> 
 
\t \t \t </div> \t 
 
\t \t \t 
 
\t \t \t <div class="form-control"> 
 
\t \t \t \t <label class="enquiry">Description <span>:</span></label> 
 
\t \t \t \t <textarea id="message" th:field="*{description}" ></textarea> 
 
\t \t \t \t <div class="clear"></div> 
 
\t \t \t </div> 
 
\t \t \t 
 
\t \t \t <div class="form-control"> 
 
\t \t \t \t <label class="enquiry">answer <span>:</span></label> 
 
\t \t \t \t <textarea id="answer" th:field="*{answer}" ></textarea> 
 
\t \t \t \t <div class="clear"></div> 
 
\t \t \t </div> 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t <div class="form-control"> 
 
\t \t \t \t <input type="reset" class="reset" value="Reset"/> 
 
\t \t \t \t <input type="submit" class="register" value="save changes" /> 
 
\t \t \t \t <div class="clear"></div> 
 
\t \t \t </div> \t 
 
\t \t </form>

und hier ist die Steuerung:

@RequestMapping(value="/update",method=RequestMethod.POST) 
public String saveAppel(@ModelAttribute("editappel") Appel editappel,BindingResult result, ModelMap model) 
{if (result.hasErrors()) { 
    return "edit";} 


    appelRepository.save(editappel); 
     return "index";} 

das Problem ist, wenn ich auf Bearbeiten klicken, um es mich zu treffen, um Whitelabel-Fehlerseite, wenn ich den Stack-Trace überprüft, es erwähnen this: Weder BindingResult noch einfaches Zielobjekt für den Bean-Namen 'editappel' als Anfrageattribut verfügbar Ich konnte nicht herausfinden, wo das Problem irgendwelche Ideen ist bitte?

Dies ist der Stacktrace

java.lang.IllegalStateException: Weder BindingResult noch ebene Zielobjekt für bean name 'appel' als Anforderungsattribut bei org.springframework.web.servlet.support.BindStatus (BindStatus. .java: 144) ~ [spring-webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei org.thymeleaf.spring4.util.FieldUtils.getBindStatusFromParsedExpression (FieldUtils.java:401) ~ [thymeleaf-spring4 -2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.spring4.util.FieldUtils.getBindStatus (FieldUtils.java:328) ~ [thymeleaf-spring4-2.1.5.RELEASE.jar: 2.1 .5.RELEASE] bei org.thymeleaf.spring4.util.FieldUtils.getBindStatus (FieldUtil s.java:294) ~ [thymeleaf-spring4-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.spring4.processor.attr.AbstractSpringFieldAttrProcessor.processAttribute (AbstractSpringFieldAttrProcessor.java:98) ~ [ thymeleaf-spring4-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess (AbstractAttrProcessor.java:87) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.processor.AbstractProcessor.process (AbstractProcessor.java:212) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom. Node.applyNextProcessor (Node.java:1017) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:972) ~ [thymeleaf- 2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.computeNextChild (NestableNode.java:695) ~ [thymel eaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.doAdditionalProcess (NestableNode.java:668) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5. RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.computeNextChild (NestableNode.java:695) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.doAdditionalProcess (NestableNode.java:668) ~ [thymeleaf-2.1.5. RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org. thymeleaf.dom.NestableNode.computeNextChild (NestableNode.java:695) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.doAdditionalProcess (NestableNode.java:668) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.computeNextChild (NestableNode.java:695) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.doAdditionalProcess (NestableNode.java:668) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1. 5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode. computeNextChild (NestableNode.java:695) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.doAdditionalProcess (NestableNode.java:668) ~ [thymeleaf-2.1. 5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.computeNextChild (NestableNode.java:695) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.doAdditionalProcess (NestableNode.java : 668) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf-2.1.5.RELEASE.jar : 2.1.5.RELEASE] bei org.thymeleaf.dom.NestableNode.computeNextChild (NestableNode.java:695) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom .NestableNode.doAdditionalProcess (NestableNode.java:668) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Node.processNode (Node.java:990) ~ [thymeleaf -2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.dom.Document.process (Document.java:93) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE ] bei org.thymeleaf.TemplateEngine.process (TemplateEngine.java:1155) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.TemplateEngine.process (TemplateEngine.java:1060) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.TemplateEngine.process (TemplateEngine.java:1011) ~ [thymeleaf-2.1.5.RELEASE.jar: 2.1.5. FREIGABE] bei org.thymeleaf.spring4.view.ThymeleafView.renderFragment (ThymeleafView.java:335) ~ [Thymelblatt-Feder4-2.1.5.RELEASE.jar: 2.1.5.RELEASE] bei org.thymeleaf.spring4. view.ThymeleafView.render (ThymeleafView.java:190) ~ [thymeleaf-spring4-2.1.5.RELEASE.jar: 2.1.5.RELEASE] unter org.springframework.web.servlet.DispatcherServlet.render (DispatcherServlet.java: 1286) ~ [spring-webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] unter org.springframework.web.servlet.DispatcherServlet.pr ocessDispatchResult (DispatcherServlet.java:1041) ~ [spring-webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] unter org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:984) ~ [ spring-webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] unter org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:901) ~ [spring-webmvc-4.3.10.RELEASE. jar: 4.3.10.RELEASE] unter org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:970) ~ [spring-webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] um org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:861) ~ [feder webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei javax.servlet.http.HttpServlet.service (HttpServlet.java:635) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] unter org.springframework.web.servle t.FrameworkServlet.service (FrameworkServlet.java:846) ~ [feder webmvc-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei javax.servlet.http.HttpServlet.service (HttpServlet.java:742) ~ [tomcat-embed-Core-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) ~ [tomcat-embed-Core-8.5.16. jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache. tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) ~ [tomcat-embed-websocket-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain. java: 193) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] unter org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:99) ~ [spring- web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] unter org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [spring-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache. catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] unter org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal (HttpPutFormContentFilter.java: 105) ~ [spring-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [Feder-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei org.apache.catalina.core. ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-Core-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [ tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java:81) ~ [spring-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] unter org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [spring-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei org. apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core -8.5.16.jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-Core-8.5.16.jar: 8.5.16] unter org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:197) ~ [spring-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] unter org.springframework.web.filter.OncePerRequestFilter .doFilter (OncePerRequestFilter.java:107) ~ [Feder-web-4.3.10.RELEASE.jar: 4.3.10.RELEASE] bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.16.jar : 8.5.16] bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.j ava: 198) ~ [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) [tomcat-embed-core-8.5 .16.jar: 8.5.16] bei org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:478) [tomcat-einzubetten-core-8.5.16.jar: 8.5.16] bei org. apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:140) [tomcat-einzubetten-core-8.5.16.jar: 8.5.16] bei org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java : 80) [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:87) [tomcat-embed-core-8.5.16 .jar: 8.5.16] bei org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) [tomcat-embed-core-8.5.16.jar: 8.5.16] at org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:799) [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight .java: 66) [tomcat-embed-core-8.5.16.jar: 8.5.16] unter org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:868) [tomcat-embed-core-8.5 .16.jar: 8.5.16] bei org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1455) [tomcat-embed-core-8.5.16.jar: 8.5.16] bei org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) [Tomcat-Einbetten-Core-8.5.16.jar: 8.5.16] bei java.util.concurrent.ThreadPoolExecutor.runWorker (Unbekannte Quelle) [na: 1.8.0_144] bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (unbekannte Quelle) [na: 1.8.0_144] bei org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) [Tomcat-Einbetten-Core-8.5.16.jar: 8.5.16] bei java.lang.Thread .run (Unknown Source) [na: 1.8.0_144]

+0

Haben Sie überprüft, ob 'appelService.findAppelById (id)' ist 'null' Rückkehr? – davioooh

+0

Könnten Sie bitte eine ganze Stack-Spur des Fehlers einfügen? Vielleicht würde es einen Hinweis geben, weil dein Code IMO gut aussieht. –

+0

@davioooh: es gibt Null –

Antwort

1

Ersetzen Sie Ihre td Syntax von:

<td><a th:href="@{'/appel/edit/' + ${appel.id}}">edit</a></td> 
+0

Vielen Dank so viel, es funktioniert jetzt –

Verwandte Themen