欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringMVC高效獲取JavaBean對(duì)象指南

 更新時(shí)間:2025年06月17日 16:47:48   作者:m0_75107803  
SpringMVC通過數(shù)據(jù)綁定自動(dòng)將請(qǐng)求參數(shù)映射到JavaBean,支持表單、URL及JSON數(shù)據(jù),需用@ModelAttribute、@RequestBody注解,本文通過實(shí)例代碼介紹SpringMVC高效獲取JavaBean對(duì)象指南,感興趣的朋友一起看看吧

Spring MVC 獲取 JavaBean 對(duì)象指南

核心機(jī)制:數(shù)據(jù)綁定

Spring MVC 通過數(shù)據(jù)綁定機(jī)制,自動(dòng)將 HTTP 請(qǐng)求參數(shù)(包括表單字段和 URL 參數(shù))映射到 JavaBean 對(duì)象的屬性。

實(shí)現(xiàn)步驟

1. 定義 JavaBean

public class User {
    private String name;
    private Integer age;
    // 必須提供無參構(gòu)造器和 getter/setter 方法
    // 省略 getter/setter...
}

2. 在 Controller 中接收對(duì)象

@Controller
public class UserController {
    // 方式1:直接作為方法參數(shù)
    @PostMapping("/register")
    public String register(User user) {
        System.out.println("用戶名: " + user.getName());
        System.out.println("年齡: " + user.getAge());
        return "success";
    }
    // 方式2:使用 @ModelAttribute 顯式綁定
    @PostMapping("/update")
    public String update(@ModelAttribute("user") User user) {
        // 對(duì)象會(huì)被自動(dòng)放入模型,可用于視圖渲染
        return "result";
    }
}

關(guān)鍵細(xì)節(jié)

參數(shù)名稱匹配規(guī)則

請(qǐng)求參數(shù)名必須與 JavaBean 屬性名完全匹配(區(qū)分大小寫)。

示例:表單字段 <input name="name"> 會(huì)自動(dòng)綁定到 user.setName()

支持嵌套屬性

public class Address {
    private String city;
    // getter/setter...
}
public class User {
    private Address address; // 嵌套對(duì)象
}

表單使用點(diǎn)號(hào)分隔:

<input name="address.city" value="北京">

日期類型處理

使用 @DateTimeFormat 注解:

public class User {
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthDate;
}

數(shù)據(jù)驗(yàn)證

配合 @Valid 和校驗(yàn)注解使用:

public class User {
    @NotBlank(message = "姓名不能為空")
    private String name;
}
@PostMapping("/save")
public String save(@Valid User user, BindingResult result) {
    if (result.hasErrors()) {
        // 處理驗(yàn)證錯(cuò)誤
    }
    return "...";
}

數(shù)據(jù)來源

1. 表單提交 (POST)

<form action="/register" method="post">
    <input type="text" name="name">     <!-- 綁定到 user.name -->
    <input type="number" name="age">    <!-- 綁定到 user.age -->
    <button>提交</button>
</form>

2. URL 查詢參數(shù) (GET)

http://localhost:8080/user?name=John&age=25

Controller 方法:

@GetMapping("/user")
public String getUser(User user) { ... } // 自動(dòng)綁定參數(shù)

3. JSON 請(qǐng)求體 (API 場景)

使用 @RequestBody

@PostMapping("/api/user")
public ResponseEntity<?> createUser(@RequestBody User user) {
    // 處理JSON數(shù)據(jù)
    return ResponseEntity.ok(user);
}

前端需發(fā)送 JSON 格式數(shù)據(jù):{"name":"John", "age":25}

常見問題解決

屬性未綁定?

  • 檢查請(qǐng)求參數(shù)名與屬性名是否一致
  • 確保 JavaBean 有 public 的 setter 方法

類型轉(zhuǎn)換失?。?/strong>

  • 對(duì)于非字符串類型(如 Date、Integer),Spring 會(huì)自動(dòng)嘗試類型轉(zhuǎn)換
  • 轉(zhuǎn)換失敗時(shí)會(huì)拋出 TypeMismatchException,可通過 @ExceptionHandler 處理

獲取原生請(qǐng)求對(duì)象?

public String register(User user, HttpServletRequest request) {
    // 必要時(shí)訪問原生請(qǐng)求
}

總結(jié)

場景實(shí)現(xiàn)方式示例
表單/URL參數(shù)綁定直接聲明 JavaBean 參數(shù)public String save(User u)
顯式命名模型屬性使用 @ModelAttribute@ModelAttribute("user")
JSON數(shù)據(jù)綁定使用 @RequestBody@RequestBody User user
數(shù)據(jù)驗(yàn)證配合 @Valid + 校驗(yàn)注解@Valid User user

掌握這些技巧,可以高效處理 JavaBean 對(duì)象綁定,減少冗余代碼!

到此這篇關(guān)于SpringMVC高效獲取JavaBean詳解的文章就介紹到這了,更多相關(guān)SpringMVC獲取JavaBean內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)文件壓縮成zip的工具類

    java實(shí)現(xiàn)文件壓縮成zip的工具類

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件壓縮成zip的工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • springboot升級(jí)Tomcat版本的方法示例

    springboot升級(jí)Tomcat版本的方法示例

    本文主要介紹了springboot升級(jí)Tomcat版本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • mybatis通過if語句實(shí)現(xiàn)增刪改查操作

    mybatis通過if語句實(shí)現(xiàn)增刪改查操作

    這篇文章主要介紹了mybatis通過if語句實(shí)現(xiàn)增刪改查操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • spring 注解驗(yàn)證@NotNull等使用方法

    spring 注解驗(yàn)證@NotNull等使用方法

    這篇文章主要介紹了spring 注解驗(yàn)證@NotNull等使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • spring+springmvc+mybatis+maven入門實(shí)戰(zhàn)(超詳細(xì)教程)

    spring+springmvc+mybatis+maven入門實(shí)戰(zhàn)(超詳細(xì)教程)

    這篇文章主要介紹了spring+springmvc+mybatis+maven入門實(shí)戰(zhàn)(超詳細(xì)教程),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • SpringBoot下載文件遇到文件損壞等問題解決方案

    SpringBoot下載文件遇到文件損壞等問題解決方案

    調(diào)用接口下載spring?boot工程的resources目錄下的excel模板文件,非常常見的一個(gè)文件下載功能,但是卻容易遇到很多坑,下面總結(jié)記錄下
    2023-10-10
  • 使用mybatis切片實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程

    使用mybatis切片實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程

    數(shù)據(jù)權(quán)限控制需要對(duì)查詢出的數(shù)據(jù)進(jìn)行篩選,對(duì)業(yè)務(wù)入侵最少的方式就是利用mybatis或者數(shù)據(jù)庫連接池的切片對(duì)已有業(yè)務(wù)的sql進(jìn)行修改,本文給大家介紹了使用mybatis切片實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的操作流程,需要的朋友可以參考下
    2024-07-07
  • 教你一步解決java.io.FileNotFoundException:找不到文件異常

    教你一步解決java.io.FileNotFoundException:找不到文件異常

    這篇文章主要給大家介紹了關(guān)于如何一步解決java.io.FileNotFoundException:找不到文件異常的相關(guān)資料,文中通過圖文以及代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • redis redisson 限流器的實(shí)例(RRateLimiter)

    redis redisson 限流器的實(shí)例(RRateLimiter)

    這篇文章主要介紹了redis redisson 限流器的實(shí)例(RRateLimiter),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 深入淺析Mybatis與Hibernate的區(qū)別與用途

    深入淺析Mybatis與Hibernate的區(qū)別與用途

    這篇文章主要介紹了Mybatis與Hibernate的區(qū)別與用途的相關(guān)資料,需要的朋友可以參考下
    2017-10-10

最新評(píng)論