2017-05-02 4 views
1

エラーです。エラー404件目:フィールド - タイムフィールド

私は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タグを含めると、正確に投稿できるようになります(<form method="post" th:action="@{/novo}" th:object="${livro}">など)。また

、あなたのreturn文に気を付ける:

@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"; 
}