【spring】get・postによる画面遷移と値の受け渡し

sping

spring bootでget、postをするサンプルコード。

 

スポンサーリンク

※このページにはプロモーションが含まれています。当サイトは各種アフィリエイトプログラムから一定の収益を得ています。

サンプルコード

main.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>get post Sampleページ</title>
</head>
<body>
    <h1>get post サンプルページ</h1>
    <p>サンプルボタン</p>
    <form th:action="@{/getpost/getpage}" method="get">
        <input type="text" name="testGet" th:value="${getInitValue}">
        <input type="submit" value="get">
    </form>
    <form th:action="@{/getpost/postpage}" method="post">
        <input type="text" name="testPost" th:value="${postInitValue}">
        <input type="submit" value="post">
    </form>
</body>
</html>

  • get、postの遷移元となる画面
  • get、postのボタンを押すとそれぞれ画面遷移
  • name="testGet"、name="testPost"の値がjavaに渡される
  • th:value="${getInitValue}"、th:value="${postInitValue}"はmain.controllerで初期値を設定している。

 

main.controller

 

package com.example.demo.trySpring.getpost;

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

@Controller
public class MainController {
    
    @GetMapping("/getpost/main")
    public String home(Model model) {

        model.addAttribute("getInitValue", "getで送信したいテキスト");
        model.addAttribute("postInitValue", "postで送信したいテキスト");
        return "getpost/main";
    }
}

 

GetController.java

package com.example.demo.trySpring.getpost;

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

@Controller
public class GetController {
    
    @GetMapping("/getpost/getpage")
    public String home(@RequestParam("testGet")String str, Model model) {

        model.addAttribute("getText",str);
        System.out.println(str);
        return "getpost/getpage";
    }
}
  • getでボタンを押した後に呼び出されるController
  • @RequestParam(“testGet")String strに遷移元の値が入ってくる
  • model.addAttribute(“getText",str);でhtmlに表示する値をセット

 

getpage.html

<<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>getページ</title>
</head>
<body>
    <h1>getページ</h1>
    <p>getページ</p>
    <p th:text="${getText}"></p>
    <form th:action="@{/getpost/main}" method="get">
        <input type="submit" value="main">
    </form>
</body>
</html>

  • getの遷移先ページ
  • <p th:text="${getText}"></p>で遷移元からの値を受け取る

 

PostController.java

 

package com.example.demo.trySpring.getpost;

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

@Controller
public class PostController {
    
    @PostMapping("/getpost/postpage")
    public String home(@RequestParam("testPost")String str, Model model) {
        model.addAttribute("postText",str);
        System.out.println(str);
        return "getpost/postpage";
    }
}

postpage.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>postページ</title>
</head>
<body>
    <h1>postページ</h1>
    <p>postページ</p>
    <p th:text="${postText}"></p>
    <form th:action="@{/getpost/main}" method="get">
        <input type="submit" value="main">
    </form>
</body>
</html>
  • postでの値受け渡しはgetと同じ

スポンサーリンク