Erreur lors de la résolution du modèle "index", le modèle peut ne pas exister ou être accessible par l'un des résolveurs de modèles configurés
Cette question a été posée mais je n'ai pas de résoudre mon problème et que je reçois un peu bizarre fonctionnalité.
Si j'ai mis mon index.html fichier dans le répertoire statique comme suit:
J'obtiens l'erreur suivante dans mon navigateur:
Et dans ma console:
[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>".
Cependant si je déplace mon index.html fichier dans le répertoire templates j'obtiens l'erreur suivante dans mon navigateur:
J'ai ajouté mon point de vue, les résolveurs:
@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();
}
}
WebSecurityConfig.java
@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");
}
}
index.html
<!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>
À ce point, je ne sais pas ce qui se passe. Quelqu'un peut-il me donner quelques conseils?
------ Mise à JOUR--------
J'ai raté une faute de frappe dans index.html mais j'ai toujours les mêmes erreurs
<!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>
source d'informationauteur Drew1208
Vous devez vous connecter pour publier un commentaire.
Dans la console vous dit que c'est un conflit avec le nom d'utilisateur. Je pense que vous devriez déclarer également dans le index.html thymeleaf. Quelque chose comme:
index.html
doit être à l'intérieurtemplates
je le sais. Donc, votre deuxième tentative semble correct.Mais, comme le message d'erreur dit,
index.html
ressemble d'avoir quelques erreurs. E. g. l', à la troisième ligne, lemeta
balise doit être faithead
tag, je pense.Vérifier le nom de la
dossier. il convient de modèles non modèle(sans s).
cette erreur est probablement eu lieu la plupart du temps dues à l'absence de balise de fermeture. et plus vous pouvez la dépendance suivant pour résoudre ce problème, tout en soutenant l'héritage HTML formate.
que votre code charset="UTF-8"> ici n'est pas de la fermeture de la balise meta.
Si vous êtes confrontés à ce problème et tout semble bon, essayer d'invalider le cache/redémarrage de votre IDE. Cela permettra de résoudre le problème dans la plupart des cas.