Spring 弹簧靴&x2B;thymeleaf crud:编辑行

Spring 弹簧靴&x2B;thymeleaf crud:编辑行,spring,spring-mvc,spring-boot,thymeleaf,crud,Spring,Spring Mvc,Spring Boot,Thymeleaf,Crud,我是spring boot的初学者,我有一个表格,每行有一个编辑按钮 这是它的控制器: @RequestMapping(value= "/appel/edit/{id}", method = RequestMethod.GET) public String editapl(@PathVariable("id") Long id, ModelMap model ) { model.put("editappel", appelService.findAppelById(id));

我是spring boot的初学者,我有一个表格,每行有一个编辑按钮


这是它的控制器:

@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";
}
@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";
}
当我点击“编辑”按钮时,它会带我进入编辑视图,这样我就可以开始编辑了


身份证件:
服务代码:
说明:
答复:
这是它的控制器:

@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";
}
@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";
}
问题是,当我点击edit it take me to whitelabel error page时,当我检查堆栈跟踪时,它提到:bean name“editappel”的BindingResult和普通目标对象都不能作为请求属性使用,我无法找出问题出在哪里,有什么想法吗

这是stacktrace:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'appel' available as request attribute
at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.thymeleaf.spring4.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:401) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:328) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:294) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.spring4.processor.attr.AbstractSpringFieldAttrProcessor.processAttribute(AbstractSpringFieldAttrProcessor.java:98) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1017) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:972) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Node.processNode(Node.java:990) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.dom.Document.process(Document.java:93) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1155) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011) ~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.16.jar:8.5.16]
at 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]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-embed-core-8.5.16.jar:8.5.16]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.16.jar:8.5.16]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_144]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_144]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.16.jar:8.5.16]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_144]
java.lang.IllegalStateException:bean名称“appel”的BindingResult和普通目标对象都不能作为请求属性使用
在org.springframework.web.servlet.support.BindStatus.(BindStatus.java:144)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在org.thymeleaf.spring4.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:401)~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:328)~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:294)~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.spring4.processor.attr.AbstractSpringFieldAttrProcessor.processAttribute(AbstractSpringFieldAttrProcessor.java:98)~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1017)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:972)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Node.processNode(Node.java:990)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.dom.Document.process(Document.java:93)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1155)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)~[thymeleaf-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190)~[thymeleaf-spring4-2.1.5.RELEASE.jar:2.1.5.RELEASE]
在org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)~[spring-webmvc-4.3.10.RELEASE.jar:4.3.10.RELEASE]
在org.sprin