最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC高效獲取JavaBean對象指南

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

Spring MVC 獲取 JavaBean 對象指南

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

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

實現(xiàn)步驟

1. 定義 JavaBean

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

2. 在 Controller 中接收對象

@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) {
        // 對象會被自動放入模型,可用于視圖渲染
        return "result";
    }
}

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

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

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

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

支持嵌套屬性

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

表單使用點號分隔:

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

日期類型處理

使用 @DateTimeFormat 注解:

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

數(shù)據(jù)驗證

配合 @Valid 和校驗注解使用:

public class User {
    @NotBlank(message = "姓名不能為空")
    private String name;
}
@PostMapping("/save")
public String save(@Valid User user, BindingResult result) {
    if (result.hasErrors()) {
        // 處理驗證錯誤
    }
    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) { ... } // 自動綁定參數(shù)

3. JSON 請求體 (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}

常見問題解決

屬性未綁定?

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

類型轉(zhuǎn)換失???

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

獲取原生請求對象?

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

總結(jié)

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

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

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

相關(guān)文章

  • IntelliJ?IDEA如何集成maven

    IntelliJ?IDEA如何集成maven

    這篇文章主要介紹了IntelliJ?IDEA如何集成maven問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題

    解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題

    這篇文章主要介紹了解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 解決ObjectMapper.convertValue() 遇到的一些問題

    解決ObjectMapper.convertValue() 遇到的一些問題

    這篇文章主要介紹了解決ObjectMapper.convertValue() 遇到的一些問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 關(guān)于Unsupported major.minor version 49.0的錯誤解決辦法

    關(guān)于Unsupported major.minor version 49.0的錯誤解決辦法

    這篇文章主要介紹了關(guān)于Unsupported major.minor version 49.0的錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • Java substring方法實現(xiàn)原理解析

    Java substring方法實現(xiàn)原理解析

    這篇文章主要介紹了Java substring方法實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • SpringBoot增量/瘦身部署jar包的方式

    SpringBoot增量/瘦身部署jar包的方式

    SpringBoot 項目的部署一般采用全量jar 包方式部署相關(guān)項目,如果我們對相關(guān)的Contrller層進(jìn)行相關(guān)業(yè)務(wù)調(diào)整就需要重新編譯全量jar 包太麻煩了,所以本文給大家介紹了使用SpringBoot 的增量/瘦身部署方式,需要的朋友可以參考下
    2024-01-01
  • SpringBoot配置文件的加載位置實例詳解

    SpringBoot配置文件的加載位置實例詳解

    springboot采納了建立生產(chǎn)就緒spring應(yīng)用程序的觀點。 在一些特殊的情況下,我們需要做修改一些配置,或者需要有自己的配置屬性。接下來通過本文給大家介紹SpringBoot配置文件的加載位置,感興趣的朋友一起看看吧
    2018-09-09
  • 實例解析Json反序列化之ObjectMapper(自定義實現(xiàn)反序列化方法)

    實例解析Json反序列化之ObjectMapper(自定義實現(xiàn)反序列化方法)

    這篇文章主要介紹了實例解析Json反序列化之ObjectMapper,json自定義序列化的方法,需要的朋友可以了解下。
    2017-09-09
  • Java GC 機制與內(nèi)存分配策略詳解

    Java GC 機制與內(nèi)存分配策略詳解

    這篇文章主要介紹了Java GC 機制與內(nèi)存分配策略詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 淺析java中String類型中“==”與“equal”的區(qū)別

    淺析java中String類型中“==”與“equal”的區(qū)別

    這篇文章主要介紹了淺析java中String類型中“==”與“equal”的區(qū)別,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論

永泰县| 平南县| 盘山县| 金湖县| 千阳县| 泸州市| 民和| 九龙县| 浦北县| 昆明市| 蕲春县| 锦州市| 汤原县| 漳浦县| 遂平县| 兴山县| 新密市| 汉中市| 青浦区| 临湘市| 新余市| 京山县| 黄冈市| 青冈县| 宽城| 佛教| 兴安盟| 哈尔滨市| 泰宁县| 曲周县| 上思县| 东源县| 比如县| 东乡族自治县| 襄垣县| 新密市| 汶川县| 宜川县| 兴海县| 徐汇区| 泾川县|