解决方案:
将spring.thymeleaf.mode默认值为“html5”的严格模式,改为“legacyhtml5”非严格模式;legacyhtml5的使用需要与nekohtml依赖相搭配搭配。
实现步骤如下:
步骤1:在application.properties中增加
spring.thymeleaf.mode=legacyhtml5
步骤2:在pom加入依赖jar
<dependency> <groupid>net.sourceforge.nekohtml</groupid> <artifactid>nekohtml</artifactid> <version>1.9.15</version></dependency>
如果不加入相关的nekohtml会在触发页面时报异常:
org.thymeleaf.exceptions.configurationexception: cannot perform conversion to xml from legacy html: the nekohtml library is not in classpath. nekohtml 1.9.15 or newer is required for processing templates in "legacyhtml5" mode [http://nekohtml.sourceforge.net]. maven spec: "net.sourceforge.nekohtml::nekohtml::1.9.15". important: do not use versions of nekohtml older than 1.9.15. at org.thymeleaf.templateparser.html.abstracthtmltemplateparser.parsetemplate(abstracthtmltemplateparser.java:90) ~[thymeleaf-2.1.4.release.jar:2.1.4.release] at org.thymeleaf.templaterepository.gettemplate(templaterepository.java:278) ~[thymeleaf-2.1.4.release.jar:2.1.4.release] at org.thymeleaf.templateengine.process(templateengine.java:1104) ~[thymeleaf-2.1.4.release.jar:2.1.4.release] at org.thymeleaf.templateengine.process(templateengine.java:1060) ~[thymeleaf-2.1.4.release.jar:2.1.4.release] at org.thymeleaf.templateengine.process(templateengine.java:1011) ~[thymeleaf-2.1.4.release.jar:2.1.4.release] at org.thymeleaf.spring4.view.thymeleafview.renderfragment(thymeleafview.java:335) ~[thymeleaf-spring4-2.1.4.release.jar:2.1.4.release] at org.thymeleaf.spring4.view.thymeleafview.render(thymeleafview.java:190) ~[thymeleaf-spring4-2.1.4.release.jar:2.1.4.release] at org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:1243) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at org.springframework.web.servlet.dispatcherservlet.processdispatchresult(dispatcherservlet.java:1027) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:971) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:893) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:969) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:860) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at javax.servlet.http.httpservlet.service(httpservlet.java:622) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:845) ~[spring-webmvc-4.2.4.release.jar:4.2.4.release] at javax.servlet.http.httpservlet.service(httpservlet.java:729) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:291) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.tomcat.websocket.server.wsfilter.dofilter(wsfilter.java:52) ~[tomcat-embed-websocket-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.springframework.web.filter.requestcontextfilter.dofilterinternal(requestcontextfilter.java:99) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.springframework.web.filter.httpputformcontentfilter.dofilterinternal(httpputformcontentfilter.java:87) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.springframework.web.filter.hiddenhttpmethodfilter.dofilterinternal(hiddenhttpmethodfilter.java:77) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:121) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:107) ~[spring-web-4.2.4.release.jar:4.2.4.release] at org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:239) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:212) ~[tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:106) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:141) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:79) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:88) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:521) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.coyote.http11.abstracthttp11processor.process(abstracthttp11processor.java:1096) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.coyote.abstractprotocol$abstractconnectionhandler.process(abstractprotocol.java:674) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.tomcat.util.net.nioendpoint$socketprocessor.dorun(nioendpoint.java:1500) [tomcat-embed-core-8.0.30.jar:8.0.30] at org.apache.tomcat.util.net.nioendpoint$socketprocessor.run(nioendpoint.java:1456) [tomcat-embed-core-8.0.30.jar:8.0.30] at java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) [na:1.7.0_75] at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) [na:1.7.0_75] at org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) [tomcat-embed-core-8.0.30.jar:8.0.30] at java.lang.thread.run(thread.java:745) [na:1.7.0_75]
以上就是因html中没有结束标签而报异常的解决方法的详细内容。