I'm having some problems that i don't know how to solve. I need to add an "new house" system to my real estate advertisement site. So i added a button in the advertise management page linking to a dashboard page, when i click the button, it goes to a whitelabel error page with this error:
There was an unexpected error (type=Internal Server Error, status=500).
An error happened during template parsing (template: "class path resource [templates//dashboard-locador.html]")
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates//dashboard-locador.html]")
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241)
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100)
at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072)
at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366)
at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1400)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: org.attoparser.ParseException: Cannot process attribute '{th:field,data-th-field}': no associated BindStatus could be found for the intended form binding operations. This can be due to the lack of a proper management of the Spring RequestContext, which is usually done through the ThymeleafView or ThymeleafReactiveView (template: "/dashboard-locador" - line 70, col 92)
at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)
at org.attoparser.MarkupParser.parse(MarkupParser.java:257)
at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)
... 48 more
Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Cannot process attribute '{th:field,data-th-field}': no associated BindStatus could be found for the intended form binding operations. This can be due to the lack of a proper management of the Spring RequestContext, which is usually done through the ThymeleafView or ThymeleafReactiveView (template: "/dashboard-locador" - line 70, col 92)
at org.thymeleaf.spring5.processor.AbstractSpringFieldTagProcessor.doProcess(AbstractSpringFieldTagProcessor.java:177)
at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)
at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95)
at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633)
at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314)
at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleOpenElementEnd(TemplateHandlerAdapterMarkupHandler.java:304)
at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleOpenElementEnd(InlinedOutputExpressionMarkupHandler.java:278)
at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleOpenElementEnd(OutputExpressionInlinePreProcessorHandler.java:186)
at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleOpenElementEnd(InlinedOutputExpressionMarkupHandler.java:124)
at org.attoparser.HtmlElement.handleOpenElementEnd(HtmlElement.java:109)
at org.attoparser.HtmlMarkupHandler.handleOpenElementEnd(HtmlMarkupHandler.java:297)
at org.attoparser.MarkupEventProcessorHandler.handleOpenElementEnd(MarkupEventProcessorHandler.java:402)
at org.attoparser.ParsingElementMarkupUtil.parseOpenElement(ParsingElementMarkupUtil.java:159)
at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:710)
at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301)
... 50 more
Advertise management page:
<!DOCTYPE html>
<html lang="pt-br" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style/dashboard.css">
<link rel="stylesheet" href="style/global-style.css">
<script src="https://kit.fontawesome.com/fe8dd15147.js" crossorigin="anonymous" defer></script>
<script src="script/script.js" defer></script>
<script src="script/aaa.js" defer></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Coda&display=swap" rel="stylesheet">
</head>
<body>
<!-- NAVBAR -->
<header class="cabecalho">
<div class="navBar-container">
<nav class="navBar">
<h1>Logo</h1>
<ul>
<li>Home</li>
<li>Imóveis</li>
<li>Sobre Nós</li>
<li>Suporte</li>
</ul>
<div class="login-singin">
<div class="button">CADASTRO</div>
<div class="button invert-button"><img src="icons/perfil.svg"> LOGIN</div>
</div>
<button class="menu" onclick="">
<img src="icons/Menu.svg">
</button>
</nav>
</div>
<div class="cabecalho-meus-imoveis">
<a href="#"><i class="fas fa-angle-double-left"></i> Voltar a Meus Imoveis</a>
<h2>Endereço do Negócio</h2>
</div>
</header>
<main>
<!-- CRIAR ANUNCIO -->
<div class="servicos-dashboard">
<div class="preco-dashboard">
<input type="number" class="preco-dashboard" placeholder="R$ 999999.99999">
<a th:href="@{dashboard}"><i class="fas fa-pen"></i>CRIAR PUBLICAÇÃO</a>
</div>
</div>
</section>
</main>
</body>
</html>
Dashboard page:
<!DOCTYPE html>
<html lang="pt-br" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style/dashboard.css">
<link rel="stylesheet" href="style/global-style.css">
<script src="https://kit.fontawesome.com/fe8dd15147.js" crossorigin="anonymous" defer></script>
<script src="script/script.js" defer></script>
<script src="script/aaa.js" defer></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Coda&display=swap" rel="stylesheet">
</head>
<body>
<!-- NAVBAR -->
<header class="cabecalho">
<div class="navBar-container">
<nav class="navBar">
<h1>Logo</h1>
<ul>
<li>Home</li>
<li>Imóveis</li>
<li>Sobre Nós</li>
<li>Suporte</li>
</ul>
<div class="login-singin">
<div class="button">CADASTRO</div>
<div class="button invert-button"><img src="icons/perfil.svg"> LOGIN</div>
</div>
<button class="menu" onclick="">
<img src="icons/Menu.svg">
</button>
</nav>
</div>
<div class="cabecalho-meus-imoveis">
<a href="#"><i class="fas fa-angle-double-left"></i> Voltar a Meus Imoveis</a>
<h2>Endereço do Negócio</h2>
</div>
</header>
<!-- -->
<main>
<section class="informacoes-servico">
<div class="carrossel">
<img src="assets/803_df899154-e3b9-4e5f-a1fb-6b23820b6011_thm.jpg" class="imagems-carrossel active "alt="">
<img src="assets/96026334.jpg" class="imagems-carrossel" alt="">
<img src="assets/maxresdefault.jpg" class="imagems-carrossel" alt="">
<img src="assets/unnamed.jpg" class="imagems-carrossel" alt="">
<img src="assets/Imagem1.png" class="imagems-carrossel" alt="">
<button class="btn-carrossel"></button>
<button class="btn-carrossel-1"></button>
<div class="bolinhas" id="bolinha"></div>
</div>
<!-- DESCRICAO DO IMOVEL -->
<div class="servicos-dashboard">
<div class="preco-dashboard">
<input type="number" class="preco-dashboard" placeholder="R$ 9999.99">
<a href="#"><i class="fas fa-pen"></i>EDITAR PUBLICAÇÃO</a>
<a href="#"><i class="fas fa-pen"></i>EXCLUIR PUBLICAÇÃO</a>
</div>
<div class="descricao-dashboard">
<h2>DESCRIÇÃO</h2>
<textarea rows="5" colls="33" placeholder="Insira sua descrição" maxlength="1000" th:field="*"></textarea>
</div>
<div class="dados-imovel-dashboard">
<h2>DADOS DO IMOVEL </h2>
<div class="dados-imovel-dashboard-especificacoes">
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Cidade</span>
<input class="conteudo-especificacao-dashboard" placeholder="Ex: Cidade" th:field="*"></input>
</div>
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Bairro</span>
<input class="conteudo-especificacao-dashboard" placeholder="Ex: Osasco-Beach"></input>
</div>
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Construido em</span>
<input class="conteudo-especificacao-dashboard" placeholder="Ex: 2003" th:field="*"></input>
</div>
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Vigilância</span>
<input class="conteudo-especificacao-dashboard" placeholder="Ex: 24" th:field="*"></input>
</div>
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Estacionamento</span>
<input class="conteudo-especificacao-dashboard"placeholder="Sim" th:field="*"></input>
</div>
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Tamanho m²</span>
<input class="conteudo-especificacao-dashboard " placeholder="100m²" th:field="*"></input>
</div>
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Banheiros</span>
<input class="conteudo-especificacao-dashboard" placeholder="4" th:field="*"></input>
</div>
<!-- ALTERAR APÓS COMPONENTIZAÇÃO -->
<div class="especificacoes-info">
<span class="titulo-especificacao-dashboard">Preço por m²</span>
<input class="conteudo-especificacao-dashboard" placeholder="R$ 300" th:field="*"></input>
</div>
</div>
</div>
</div>
</section>
</main>
</body>
</html>
Dashboard controller code:
package icarus.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import icarus.model.Imoveis;
@Controller
public class DashboardController {
@GetMapping("/dashboard")
public ModelAndView InsertImovel(Imoveis imovel) {
ModelAndView mv = new ModelAndView();
mv.setViewName("/dashboard-locador");
mv.addObject("imovel", new Imoveis());
return mv;
}
}
(sorry for my poor english)