这个问题以前被问过,但我没有解决我的问题,我得到了一些奇怪的功能。
如果我将index.html
文件放在静态目录中,如下所示:
我在浏览器中得到以下错误:
[THYMELEAF][http-nio-8080-exec-3] Exception processing template "login":
Exception parsing document: template="login", line 6 - column 3
2015-08-11 16:09:07.922 ERROR 5756 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].
[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet]
in context with path [] threw exception [Request processing failed; nested
exception is org.thymeleaf.exceptions.TemplateInputException: Exception
parsing document: template="login", line 6 - column 3] with root cause
org.xml.sax.SAXParseException: The element type "meta" must be terminated by
the matching end-tag "</meta>".
@Controller
@EnableWebMvc
public class WebController extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index").setViewName("index");
registry.addViewController("/results").setViewName("results");
registry.addViewController("/login").setViewName("login");
registry.addViewController("/form").setViewName("form");
}
@RequestMapping(value="/", method = RequestMethod.GET)
public String getHomePage(){
return "index";
}
@RequestMapping(value="/form", method=RequestMethod.GET)
public String showForm(Person person) {
return "form";
}
@RequestMapping(value="/form", method=RequestMethod.POST)
public String checkPersonInfo(@Valid Person person, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "form";
}
return "redirect:/results";
}
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("templates/");
//resolver.setSuffix(".html");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<meta>
<meta> charset="UTF-8">
<title></title>
</head>
<body>
<h1>Welcome</h1>
<a href="../../login.html"><span>Click here to move to the next page</span></a>
</body>
</html>
在这一点上,我不知道是怎么回事。有人能给我一些建议吗?
我在index.html
中遗漏了一个错误,但我仍然得到相同的错误
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta> charset="UTF-8">
<title></title>
</head>
<body>
<h1>Welcome</h1>
<a href="../../login.html"><span>Click here to move to the next page</span></a>
</body>
</html>
正如我所知,index.html
应该在模板
中。所以,你的第二次尝试看起来是正确的。
但是,正如错误消息所说,index.html
似乎有一些错误。例如。在第三行中,meta
标记实际上应该是head
标记。
现在我得到了另一个错误: 有人能帮我解释为什么我必须依赖thymleaf来提供html内容,为什么我会得到这个错误。
第一次发帖时,请纠正我的错误。虽然我没有偏离文件夹结构的默认映射,但我认为我应该在设置中添加。 每当我请求/home映射时,就会得到一个TemplateInputException HomeController类:
我使用mvc+java HttpServlet+Thymeleaf模板,但它是错误的。文件home.html已经存在。 我的代码如下: 与Freemarker我使用类似,它做得很好。 非常感谢
我已经配置了Spring-Servlet: 我的瓷砖定义是: 这会给我以下错误吗: 它工作得很好。 所以问题是Thymeleaf能接受我的文件夹结构吗?如果是,怎么做?
我正在学习Spring Boot、Thymeleaf和Spring Data JPA。我为自己创建了一个示例项目,在那里我可以学习所有这些东西。我在这里不问很多问题,因为通常这是一些愚蠢的错误,我对此感到厌恶。然而,我被这一个错误卡住了,我别无选择。 这是我的项目结构:项目结构 这是我的控制器: 整个应用程序可以在这里看到。我还得到警告:找不到模板位置:classpath:/templates/(
pom文件: 当我尝试打开localhost:8080/users页面时 Whitelabel错误页面此应用程序没有针对/Error的显式映射,因此您将其视为一种后退。 我不知道如何添加页眉和页脚