2017-05-02 1 views
1

오류가 발생했습니다.오류 404 번째 : field - thymeleaf

나는 thymeleaf의 초보자이며 올바르게 입력을 할 수 없습니다.

태그 th : 필드 html 페이지에서 자동 완성되지 않습니다.

<form method="post" th:object="${livro}"> 

     <label>Nome: </label> 
     <input type="text" id="nome" th:field="*{nome}" /> 
     <br> 

     <label for="anotacao">anotacao </label> 
     <textarea rows="3" cols="30" id="anotacao" th:field="*{anotacao}"></textarea> 
     <br> 

     <input type="submit" value="Salvar"> 

    </form> 

내 컨트롤러는 간단합니다.

@RequestMapping(value="/novo", method = RequestMethod.POST) 
public String salvar(@Valid Livro livro, BindingResult result,Model model, RedirectAttributes attributes){ 

    if(result.hasErrors()){ 
     model.addAttribute("mensagem", "Erro no formulario"); 
    return "/Livro"; 
    } 

    livroService.salvar(livro); 
    attributes.addFlashAttribute("mensagem", "Livro salvo com sucesso!!!"); 
    return "redirect:/Livros/novo"; 
} 

내 모델 :

@Entity 
public class Livro { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 

    @NotBlank 
    private String nome; 
    @Size(min = 1, max = 60, message = "minimo de 1 e maximo de 60 caracteres") 
    private String anotacao; 

내 pom.xml 파일

http://maven.apache.org/xsd/maven-4.0.0.xsd을 "> 4.0. 0

<groupId>br.com.admescola.escola</groupId> 
<artifactId>admescola</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 

<name>admescola</name> 
<description>Administração de escola</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.3.RELEASE</version> 
    <relativePath /> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 





</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 


    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <!-- Conector MySQL --> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <scope>runtime</scope> 
    </dependency> 


    <!-- DevTools --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-devtools</artifactId> 
    </dependency> 



<!-- Tomcat --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 


<!-- Test do String --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 


    <!-- Thymeleaf --> 
    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf</artifactId> 
     <version>3.0.5.RELEASE</version><!--$NO-MVN-MAN-VER$ --> 
    </dependency> 



    <!-- thymeleaf-spring4 --> 

    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf-spring4</artifactId> 
     <version>3.0.5.RELEASE</version><!--$NO-MVN-MAN-VER$ --> 
    </dependency> 



    <!-- Thymeleaf - Layout Dialect --> 
<dependency> 
<groupId>nz.net.ultraq.thymeleaf</groupId> 
<artifactId>thymeleaf-layout-dialect</artifactId> 
<version>2.2.1</version> 

ependencies>

,
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

답변

0

에 오신 것을 환영합니다 SO합니다.

또는 무엇이든간에 정확하게 게시하려면 form 태그에 th:action을 포함하는 것이 좋습니다. 또한

, 수익 문을 조심 :

@PostMapping("/novo") //can use shortened form 
public String salvar(@Valid Livro livro, 
        BindingResult result, 
        Model model, 
        RedirectAttributes attributes) { 

    if (result.hasErrors()) { 
     model.addAttribute("mensagem", "Erro no formulario"); 
     return "Livro"; //you may want to remove the slash. This will look for something like Livro.jsp or Livro.html. 
    } 

    livroService.salvar(livro); 

    attributes.addFlashAttribute("mensagem", "Livro salvo com sucesso!!!"); 
    return "redirect:/Livros/novo"; 
}