技術共有

SpringMVC の初心者がリクエストパラメータとデータエコーを受け取る

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

pom.xml ファイルは lombok 依存関係をインポートします

  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>1.18.34</version>
  5. </dependency>

@Controller はこれがコントローラーであることを意味します

@RequestParam はフロントエンドから受信することを意味します

通常、Model は返された結果をフロントエンドに渡すために使用されます。

  1. package com.demo.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RequestParam;
  7. @Controller
  8. @RequestMapping("/user")
  9. public class UserController {
  10. //localhost:8080/user/test?name=xx
  11. @GetMapping("/test")
  12. public String test(@RequestParam("name") String name, Model model){
  13. //1.接收前端参数
  14. System.out.println(name);
  15. //2.将返回的结果传递给前端
  16. model.addAttribute("msg",name);
  17. //3.视图跳转
  18. return "test"; //test.jsp
  19. }
  20. }

@AllArgsConstructor パラメトリック コンストラクター

@NoArgsConstructor 引数なしのコンストラクター

(参照する前に、lombok の jar パッケージをインポートする必要があります)

  1. package com.demo.pojo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. @Data
  6. @AllArgsConstructor //有参构造器
  7. @NoArgsConstructor //无参构造器
  8. public class User {
  9. private String name;
  10. private int age;
  11. }

フロントエンド ユーザーによって渡されたパラメーターを受け取り、その名前がメソッドにあると仮定すると、そのパラメーターの名前を直接使用できます。

渡されるパラメータは、オブジェクトが受け取るパラメータ フィールドと一致している必要があります。

  1. package com.demo.controller;
  2. import com.demo.pojo.User;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.GetMapping;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. @Controller
  7. @RequestMapping("/user")
  8. public class UserController {
  9. /*
  10. 1.接收前端用户传递的参数,判断参数的名字,假设名字在方法上,可以直接使用
  11. 2.假设传递的是一个对象User,匹配User对象中的字段名
  12. */
  13. @GetMapping("/test2")
  14. public String test2(User user){
  15. System.out.println(user);
  16. return "test";
  17. }
  18. }

たとえば、アドレス バーに http:localhost:8080/user/test2?name=hh&age=18 と入力します。

(作成したクラスに合わせてパラメータを設定する必要があります。上記でUserクラスを使用した場合はUserクラス内の変数を使用してください)

出力は次のとおりです。

フロントエンドにデータを表示する方法:

1. モデルとビュー

まず新しい ModelAndView() を作成します。

次に、addObject を通じてデータをカプセル化します。

最後に、setViewName は返されたビュー名を設定します。

2. モデル

メソッド括弧内で Model インターフェイスを使用する

addAttribute を通じてデータをカプセル化する

ようやく視界に戻ります

3. モデルマップ

Ctrl + H を押してツリーを表示します

ModelMap は LinkedHashMap を継承し、そのすべての機能を備えています

使い方はModelと似ています

3 つの比較:

1. モデルにはデータの保存に適したメソッドがいくつかしかありません

2. ModelMap は、独自のメソッドの実装に加えて、LinkedHashMap のメソッドと特性も継承します。

3. データの保存中に、ModelAndView は返された論理ビューを設定し、表示レイヤーのジャンプを制御できます。