lyr0621
好吧,我知道这和mc确实扯不上啥关系,但是考虑到很多人都学过java,我就问一下吧

我在用thymeleaf写登录页面的时候,死活报错

html代码如下(在templates下)
  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8.     <p th:utext="welcome,  + ${Username}"></p>
  9.     <p>log in is success</p>
  10. </body>
  11. </html>
复制代码
java代码
  1. import org.springframework.stereotype.Controller;
  2. import org.springframework.ui.Model;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.PostMapping;
  5. import org.springframework.web.bind.annotation.RequestAttribute;
  6. import org.springframework.web.bind.annotation.ResponseBody;

  7. @Controller
  8. public class logInController {
  9.     @PostMapping("/login-handler")
  10.     public String handleLogIn(String Username, String Password, Model model) {
  11.         System.out.println("username:" + Username + "; password:" + Password);
  12.         model.addAttribute("Username",Username);
  13.         return "sign-in/success.html";
  14.     }

  15.     @GetMapping("/try")
  16.     public String handleTry(Model model) {
  17.         model.addAttribute("Username", "user1");
  18.         return "sign-in/success.html";
  19.     }
  20. }
复制代码
然后就报错:

  1. This application has no explicit mapping for /error, so you are seeing this as a fallback.

  2. Thu Mar 24 00:03:37 CST 2022
  3. There was an unexpected error (type=Internal Server Error, status=500).
  4. An error happened during template parsing (template: "class path resource [templates/sign-in/success.html]")
  5. org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/sign-in/success.html]")
  6.         at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:241)
  7.         at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100)
  8.         at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666)
  9.         at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098)
  10.         at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072)
  11.         at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366)
  12.         at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190)
  13.         at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401)
  14.         at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145)
  15.         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084)
  16.         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
  17.         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
  18.         at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
  19.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
  20.         at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
  21.         at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
  22.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
  23.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  24.         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
  25.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  26.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  27.         at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
  28.         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  29.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  30.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  31.         at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
  32.         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  33.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  34.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  35.         at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
  36.         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  37.         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  38.         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  39.         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
  40.         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
  41.         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
  42.         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
  43.         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
  44.         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
  45.         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
  46.         at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
  47.         at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
  48.         at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
  49.         at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
  50.         at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  51.         at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  52.         at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  53.         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  54.         at java.base/java.lang.Thread.run(Thread.java:833)
  55. Caused by: org.attoparser.ParseException: Could not parse as expression: "welcome,  + ${Username}" (template: "sign-in/success.html" - line 8, col 8)
  56.         at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393)
  57.         at org.attoparser.MarkupParser.parse(MarkupParser.java:257)
  58.         at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)
  59.         ... 48 more
  60. Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "welcome,  + ${Username}" (template: "sign-in/success.html" - line 8, col 8)
  61.         at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:131)
  62.         at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:62)
  63.         at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:44)
  64.         at org.thymeleaf.standard.processor.StandardUtextTagProcessor.doProcess(StandardUtextTagProcessor.java:71)
  65.         at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)
  66.         at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95)
  67.         at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633)
  68.         at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314)
  69.         at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleOpenElementEnd(TemplateHandlerAdapterMarkupHandler.java:304)
  70.         at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleOpenElementEnd(InlinedOutputExpressionMarkupHandler.java:278)
  71.         at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleOpenElementEnd(OutputExpressionInlinePreProcessorHandler.java:186)
  72.         at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleOpenElementEnd(InlinedOutputExpressionMarkupHandler.java:124)
  73.         at org.attoparser.HtmlElement.handleOpenElementEnd(HtmlElement.java:109)
  74.         at org.attoparser.HtmlMarkupHandler.handleOpenElementEnd(HtmlMarkupHandler.java:297)
  75.         at org.attoparser.MarkupEventProcessorHandler.handleOpenElementEnd(MarkupEventProcessorHandler.java:402)
  76.         at org.attoparser.ParsingElementMarkupUtil.parseOpenElement(ParsingElementMarkupUtil.java:159)
  77.         at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:710)
  78.         at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301)
  79.         ... 50 more
复制代码


真的无语了

cnlimiter
return "sign-in/success";试试

cnlimiter
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org" lang="en">试试

lyr0621

感谢,但是好像还是报错。。。

耗子
字符串字面量需要用单引号包起来。

  1.     <p th:utext="'welcome, ' + ${Username}"></p>
复制代码

第一页 上一页 下一页 最后一页