2015-08-11 5 views
10

Diese Frage wurde schon einmal gestellt, aber ich habe mein Problem nicht gelöst und bekomme einige seltsame Funktionen.Fehler beim Auflösen der Vorlage "Index", die Vorlage ist möglicherweise nicht vorhanden oder kann von keinem der konfigurierten Vorlagen-Resolver aufgerufen werden

Wenn ich wie meine Datei index.html im statischen Verzeichnis setzte so:

enter image description here

ich die folgenden Fehler in meinem Browser erhalten:

enter image description here

Und in meiner Konsole :

[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>". 

Aber wenn ich meine index.html-Datei in das Verzeichnis templates verschiebe ich die folgenden Fehler in meinem Browser erhalten: enter image description here

enter image description here

Ich habe meine Ansicht Resolvern hinzugefügt:

@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> 

An diesem Punkt weiß ich nicht, was vor sich geht. Kann mir jemand einen Rat geben?

------ -------- UPDATE

verpasste ich einen Tippfehler in index.html, aber ich bin immer noch die gleichen Fehler

<!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> 

Antwort

5

In der Konsole sagt Ihnen, dass ein Konflikt mit der Anmeldung ist. Ich denke, dass du auch im index.html thymeleaf deklarieren solltest. Etwas wie:

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:th="http://www.thymeleaf.org" 
    xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3" 
    xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> 

<head> 
<meta charset="utf-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
<title>k</title> 
</head> 
6

index.html sollte drin sein templates, wie ich weiß. Also, Ihr zweiter Versuch sieht korrekt aus.

Aber, wie die Fehlermeldung sagt, index.html sieht aus wie einige Fehler haben. Z.B. die in der dritten Zeile, die meta Tag sollte eigentlich head Tag sein, denke ich.

+0

siehe Update. Ich habe es behoben, aber ich bekomme immer noch den gleichen Fehler. Die Datei index.html befindet sich derzeit im Vorlagenverzeichnis. – Drew1208

+0

In der vierten Zeile sieht das Meta-Tag vorgeschlossen aus. – Sanjay

+0

Ja, Ihr Meta-Tag ist durcheinander: charset = "UTF-8"> –

0

prüfen für den Namen der

Vorlagen

Ordner. Es sollte Vorlagen nicht Vorlage sein (ohne s).

Verwandte Themen