2017-08-07 11 views
0

私はSpring MVCでデータバインディングを勉強しており、実装するためにタグフォームの使用に近づいていました。これが記述されているように、Springフレームワークでデータバインディングを実装する必要があるようです。春のデータバインディングタグフォームは不要ですか?

しかし、私はSpring Bootでテストを行いました。フォームタグは使用せず、JSPページも入力用に使用しましたが、外部HTMLページのみを使用しました。

したがって、フォームタグは便利ですが、必須ではない、またはSpringBootだけで必要というわけではありません。

以下のコードです。ありがとう!

入力HTMLフォーム

<html> 
<body> 
<h3> Registration Form <h3> 
<br/> 
<form action="http://localhost:8080/register" method="post" > 
    <pre> 
     Name <input type="text" name="name" /> 
     Email address <input type="text" name="emailAddress" /> 
     Password <input type="password" name="password" /> 
     <input type="submit" value="Submit" /> 
    </pre> 
</form> 
</body> 
</html> 

スプリングコントローラ:Thymeleafと

package hello; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
public class RegistrationController { 

    @RequestMapping("/register") 
    public String greeting(User user, Model model) { 
     model.addAttribute("user", user); 
     return "result"; 
    } 
} 

のpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.example.bytecode</groupId> 
    <artifactId>SpringBootBindingForm</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.6.RELEASE</version> 
    </parent> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
      <optional>true</optional> 
     </dependency> 
    </dependencies> 
    <properties> 
     <java.version>1.8</java.version> 
    </properties> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

出力ページ(正しいデータバインディングを確認するために)

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <title>Getting Started: Serving Web Content</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body> 
    <p th:text="'Name, ' + ${user.name} + '!'" /> 
    <p th:text="'Password, ' + ${user.password} + '!'" /> 
    <p th:text="'Email, ' + ${user.emailAddress} + '!'" /> 
</body> 
</html> 

User.javaApplication.javaここに表示する必要はないと思います。

答えて

0

はい、タグフォームにはいくつかの追加機能がありますが、Spring Controller Databindingの実装は厳密には必要ありません。

それ以外の場合は、単純なHTMLフォームまたはPostManを使用して、その特定のタグを持つJSPからリクエストを送信せずにDataBindingを実装することはできません。

関連する問題