国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring MVC各種參數(shù)進(jìn)行封裝

這篇具有很好參考價值的文章主要介紹了Spring MVC各種參數(shù)進(jìn)行封裝。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、簡單數(shù)據(jù)類型

1.1?控制器方法

1.2?測試結(jié)果

二、對象類型

2.1?單個對象

2.1.1 控制器方法

2.1.2 測試結(jié)果

2.2?關(guān)聯(lián)對象

2.2.1?控制器方法

2.2.2 測試結(jié)果

三、集合類型

3.1?簡單數(shù)據(jù)類型集合

3.1.1 控制方法

3.1.2 測試結(jié)果

3.2?對象數(shù)據(jù)類型集合

3.2.1 控制器方法

3.2.2 測試結(jié)果

3.3?Map集合

3.3.1 控制器方法

3.3.2 測試結(jié)果?

往期專欄&文章相關(guān)導(dǎo)讀?

1. Maven系列專欄文章

2. Mybatis系列專欄文章

3. Spring系列專欄文章?

4. Spring MVC系列專欄文章??


一、簡單數(shù)據(jù)類型

在Servlet中我們通過 request.getParameter(name) 獲取請求參數(shù)。該方式存在兩個問題:

  1. 請求參數(shù)較多時會出現(xiàn)代碼冗余。
  2. 與容器緊耦合

而SpringMVC支持參數(shù)注入的方式用于獲取請求數(shù)據(jù),即將請求參數(shù)直接封裝到方法的參數(shù)當(dāng)中。用法如下:

1.1?控制器方法

// 獲取簡單類型參數(shù)
    @RequestMapping("/c1/param1")
    public void simpleParam(String username,int age){
        System.out.println(username+" "+age);
    }

????????由于我們沒有配置對應(yīng)的param1頁面,這是直接在控制臺打印出訪問的參數(shù)是多少。?訪問該方法時,請求參數(shù)名和方法參數(shù)名相同,即可完成自動封裝。并在控制臺打印出來。執(zhí)行路徑為:http://localhost:8080/c1/param1?username=LYL&age=19

1.2?測試結(jié)果

Spring MVC各種參數(shù)進(jìn)行封裝

OK,確實是在控制臺成功輸出了,說明封裝成功,接下來我們講一下對象類型。?

二、對象類型

SpringMVC支持將參數(shù)直接封裝為對象,首先我們先新建一個學(xué)生類。如下:

Student?

package com.example.domain;


public class Student {
    private int id;
    private String name;
    private String sex;

    public Student() {
    }

    public Student(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student[ " +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                " ]";
    }
}

2.1?單個對象

2.1.1 控制器方法

// 獲取對象類型參數(shù)
    @RequestMapping("/c1/param2")
    public void objParam(Student student){
        System.out.println(student);
    }

?可以知道,我們在控制臺是會打印出學(xué)生的具體信息的,

訪問路徑:http://localhost:8080/c1/param2?id=1&name=LYL&sex=man

2.1.2 測試結(jié)果

Spring MVC各種參數(shù)進(jìn)行封裝

????????OK,確實是在控制臺打印出來了,說明我們對對象類型進(jìn)行封裝的時候,只需要將他們的屬性放在訪問路徑的參數(shù)里面即可?

2.2?關(guān)聯(lián)對象

????????要實現(xiàn)關(guān)聯(lián)對象的封裝,首先我們得先建一個Address地址類,然后在Student類里面新增一個Address類型的屬性即可。如下:

Address:?

package com.example.domain;

public class Address {

    // 地址信息
    private String info;
    // 郵編
    private String postcode;

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public String getPostcode() {
        return postcode;
    }

    public void setPostcode(String postcode) {
        this.postcode = postcode;
    }

    @Override
    public String toString() {
        return "Address[ " +
                "info='" + info + '\'' +
                ", postcode='" + postcode + '\'' +
                " ]";
    }
}

?記住修改Student類,如下:

package com.example.domain;

import java.util.List;
import java.util.Map;

public class Student {
    private int id;
    private String name;
    private String sex;
    // 地址對象
    private Address address;

    public Student() {
    }

    public Student(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student[ " +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                " ]";
    }
}

2.2.1?控制器方法

    // 獲取關(guān)聯(lián)對象類型參數(shù)
    @RequestMapping("c1/param3")
    public void objParam2(Student student){
        System.out.println(student);
    }

????????訪問該方法時,請求參數(shù)名和方法參數(shù)的屬性名相同,即可完成自動封裝。,因此我們可以將請求路徑寫成:http://localhost:8080/c1/param3?id=1&name=HQX&sex=woman&address.info=guangzhou&address.postcode=5201314

2.2.2 測試結(jié)果

Spring MVC各種參數(shù)進(jìn)行封裝

OK,可以很明顯看到也是可以成功查詢出來了。?

三、集合類型

????????SpringMVC支持將參數(shù)封裝為List或Map集合,下面演示一下封裝為簡單數(shù)據(jù)類型集合的寫法。如下:

3.1?簡單數(shù)據(jù)類型集合

3.1.1 控制方法

// 綁定簡單數(shù)據(jù)類型List參數(shù),參數(shù)前必須添加@RequestParam注解
    @RequestMapping("/c/param4")
    public void listParam(@RequestParam List<String> users){
        users.forEach(System.out::println);
    }

從代碼可以看出這是訪問之后會在控制臺遍歷這個集合。

訪問路徑如下:?http://localhost:8080/c/param4?users=LYL&users=HQX

3.1.2 測試結(jié)果

Spring MVC各種參數(shù)進(jìn)行封裝

?OK,確實成功在控制臺打印出來了。

3.2?對象數(shù)據(jù)類型集合

????????SpringMVC不支持將參數(shù)封裝為對象類型的List集合,但可以封裝到有List屬性的對象中。在這里我們得先在Student類添加一個集合對象。寫法如下:

Student

package com.example.domain;

import java.util.List;
import java.util.Map;

public class Student {
    private int id;
    private String name;
    private String sex;

    // 地址集合List
    private List<Address> address;

    public Student() {
    }

    public Student(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public List<Address> getAddress() {
        return address;
    }

    public void setAddress(List<Address> address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student[ " +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                " ]";
    }
}

3.2.1 控制器方法

// 對象中包含集合屬性
    @RequestMapping("c1/param6")
    public void listParam6(Student student){
        System.out.println(student);
    }

其實和上面得對象類型沒什么不一樣,主要是參數(shù)類型得屬性不一樣,訪問路徑不一樣。?

訪問路徑:http://localhost:8080/c1/param6?id=1&name=LYL&sex=man&address[0].info=HQX&address[0].postcode=520&address[1].info=MVC&address[1].postcode=1314

3.2.2 測試結(jié)果

Spring MVC各種參數(shù)進(jìn)行封裝

?OK,也是可以成功查詢出來的

3.3?Map集合

????????同樣,SpringMVC要封裝Map集合,需要封裝到有Map屬性的對象中。修改Student實體類,寫法如下:

Student

package com.example.domain;

import java.util.List;
import java.util.Map;

public class Student {
    private int id;
    private String name;
    private String sex;

    // 地址集合Map
    private Map<String,Address> address;

    public Student() {
    }

    public Student(int id, String name, String sex) {
        this.id = id;
        this.name = name;
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Map<String, Address> getAddress() {
        return address;
    }

    public void setAddress(Map<String, Address> address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student[ " +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                " ]";
    }
}

3.3.1 控制器方法

// 對象中包含Map屬性
    @RequestMapping("c1/param7")
    public void mapParam(Student student){
        System.out.println(student);
    }

訪問路徑:

http://localhost:8080/c1/param7?id=1&name=LYL&sex=man&address[%27one%27].info=H&address[%27one%27].postcode=520&address[%27two%27].info=QX&address[%27two%27].postcode=1314]

3.3.2 測試結(jié)果?

Spring MVC各種參數(shù)進(jìn)行封裝

????????OK,也是成功查出來了,至于第一條的two的info為什么為空是因為我寫少了個']',所以才出現(xiàn)一丟丟小插曲,但是不影響我們繼續(xù)輸出。

往期專欄&文章相關(guān)導(dǎo)讀?

?????大家如果對于本期內(nèi)容有什么不了解的話也可以去看看往期的內(nèi)容,下面列出了博主往期精心制作的Maven,Mybatis等專欄系列文章,走過路過不要錯過哎!如果對您有所幫助的話就點點贊,收藏一下啪。其中Spring專欄有些正在更,所以無法查看,但是當(dāng)博主全部更完之后就可以看啦。

1. Maven系列專欄文章

Maven系列專欄 Maven工程開發(fā)
Maven聚合開發(fā)【實例詳解---5555字】

2. Mybatis系列專欄文章

Mybatis系列專欄 MyBatis入門配置
Mybatis入門案例【超詳細(xì)】
MyBatis配置文件 —— 相關(guān)標(biāo)簽詳解
Mybatis模糊查詢——三種定義參數(shù)方法和聚合查詢、主鍵回填
Mybatis動態(tài)SQL查詢 --(附實戰(zhàn)案例--8888個字--88質(zhì)量分)
Mybatis分頁查詢——四種傳參方式
Mybatis一級緩存和二級緩存(帶測試方法)
Mybatis分解式查詢
Mybatis關(guān)聯(lián)查詢【附實戰(zhàn)案例】
MyBatis注解開發(fā)---實現(xiàn)增刪查改和動態(tài)SQL
MyBatis注解開發(fā)---實現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢

3. Spring系列專欄文章?

Spring系列專欄 Spring IOC 入門簡介【自定義容器實例】
IOC使用Spring實現(xiàn)附實例詳解
Spring IOC之對象的創(chuàng)建方式、策略及銷毀時機(jī)和生命周期且獲取方式
Spring DI簡介及依賴注入方式和依賴注入類型
Spring IOC相關(guān)注解運用——上篇
Spring IOC相關(guān)注解運用——下篇
Spring AOP簡介及相關(guān)案例
注解、原生Spring、SchemaBased三種方式實現(xiàn)AOP【附詳細(xì)案例】
Spring事務(wù)簡介及相關(guān)案例
Spring 事務(wù)管理方案和事務(wù)管理器及事務(wù)控制的API
Spring 事務(wù)的相關(guān)配置、傳播行為、隔離級別及注解配置聲明式事務(wù)

4. Spring MVC系列專欄文章??

SpringMVC系列專欄 Spring MVC簡介附入門案例
Spring MVC各種參數(shù)獲取及獲取方式自定義類型轉(zhuǎn)換器和編碼過濾器
Spring MVC獲取參數(shù)和自定義參數(shù)類型轉(zhuǎn)換器及編碼過濾器
Spring MVC處理響應(yīng)附案例詳解
Spring MVC相關(guān)注解運用 —— 上篇

Spring MVC相關(guān)注解運用 —— 中篇文章來源地址http://www.zghlxwxcb.cn/news/detail-493162.html

Spring MVC相關(guān)注解運用 —— 下篇
Spring MVC多種情況下的文件上傳
Spring MVC異步上傳、跨服務(wù)器上傳和文件下載
Spring MVC異常處理【單個控制異常處理器、全局異常處理器、自定義異常處理器】
Spring MVC攔截器和跨域請求
SSM整合案例【C站講解最詳細(xì)流程的案例】

到了這里,關(guān)于Spring MVC各種參數(shù)進(jìn)行封裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring MVC 參數(shù)接收

    Spring MVC 參數(shù)接收

    Springmvc中,接收頁面提交的數(shù)據(jù)是通過方法形參來接收: 處理器適配器調(diào)用springmvc使用反射將前端提交的參數(shù)傳遞給controller方法的形參 springmvc接收的參數(shù)都是String類型,所以spirngmvc提供了很多converter(轉(zhuǎn)換器)在特殊情況下需要自定義converter,如對日期數(shù)據(jù) 編寫controller 在

    2024年01月23日
    瀏覽(58)
  • servlet -> spring-mvc -> spring-boot-> spring-security目錄

    springMVC 啟動源碼 spring-boot注冊servlet 3.多種方式注冊servlet spring-boot自動注入DispatchServlet spring-security核心配置解讀(粗) spring-security源碼解讀(新)

    2024年02月09日
    瀏覽(22)
  • Spring MVC 請求參數(shù)綁定

    Spring MVC 請求參數(shù)綁定

    Spring MVC 是一個用于構(gòu)建 Web 應(yīng)用程序的框架,它提供了一種方便的方式來處理 HTTP 請求和響應(yīng)。在 Spring MVC 中,請求參數(shù)綁定是將 HTTP 請求中的參數(shù)映射到控制器方法的參數(shù)上的過程。Spring MVC 提供了多種方式來實現(xiàn)請求參數(shù)綁定。 請求參數(shù)綁定:說?了SpringMVC如何接收請求

    2024年02月07日
    瀏覽(21)
  • 【Spring MVC學(xué)習(xí)】連接 && 接收請求參數(shù) && 響應(yīng)返回參數(shù)

    【Spring MVC學(xué)習(xí)】連接 && 接收請求參數(shù) && 響應(yīng)返回參數(shù)

    目錄 前言:認(rèn)識Spring MVC ??1、什么是MVC? 一、建立連接(5個注解) ??1、@RequestMapping注解:注冊接?的路由映射(默認(rèn)返回頁面) ??2、@ResponseBody注解:表示返回的是數(shù)據(jù) ???3、組合注解@RestController = @ResponseBody + @Controller ??4、支持Get請求的2種寫法@GetMapping +?@RequestMapp

    2024年02月16日
    瀏覽(30)
  • 3.5 Spring MVC參數(shù)傳遞

    Spring MVC的Controller接收請求參數(shù)的方式有多種,本節(jié)主要介紹Spring MVC下的HttpServletRequest、基本數(shù)據(jù)類型、Java Bean、數(shù)組、List、Map、JSON參數(shù)傳遞方式,同時解決POST請求中文亂碼問題。 基本數(shù)據(jù)類型以及他們的包裝類。 JSON格式采用鍵值對的方式來表示數(shù)據(jù),由花括號 {} 包含對

    2024年02月13日
    瀏覽(20)
  • Spring MVC: 請求參數(shù)的獲取

    Spring MVC: 請求參數(shù)的獲取

    在 Spring MVC 介紹中,談到前端控制器 DispatcherServlet 接收客戶端請求,依據(jù)處理器映射 HandlerMapping 配置調(diào)用相應(yīng)的處理器 Controller 。那么,處理器 Controller 具體是如何實現(xiàn)獲取請求參數(shù)的呢?

    2024年02月10日
    瀏覽(22)
  • 案例13 Spring MVC參數(shù)傳遞案例

    案例13 Spring MVC參數(shù)傳遞案例

    基于Spring MVC實現(xiàn)HttpServletRequest、基本數(shù)據(jù)類型、Java Bean、數(shù)組、List、Map、JSON方式的參數(shù)傳遞。 選擇Maven快速構(gòu)建web項目,項目名稱為case13-springmvc02。 ? src.main路徑下,執(zhí)行new – Directory操作,選擇java、resources后,執(zhí)行回車鍵。 ? 在web.xml中配置DispatcherServlet。 src.main.java.

    2024年02月13日
    瀏覽(23)
  • Spring MVC:常用參數(shù)(注解)的使用和參數(shù)綁定的驗證

    Spring MVC:常用參數(shù)(注解)的使用和參數(shù)綁定的驗證

    Java EE企業(yè)級應(yīng)用開發(fā)教程(Spring+Spring MVC+MyBatis)(第2版) Spring MVC常用參數(shù) Spring MVC簡單應(yīng)用 Spring MVC參數(shù)綁定 本實驗采用的是本地安裝的tomcat8.5.0版本 (1)創(chuàng)建maven 管理的java web工程 (2)添加本地tomcat war包 (3)實驗過程 輸出Hello Word 訪問端口:http://localhost:8080/chapter1

    2024年02月04日
    瀏覽(21)
  • Spring Mvc請求處理過程分析 --- 參數(shù)解析

    調(diào)試示例基于注解@RequestBody,請求的入?yún)⑹莏son格式的請求,本文主要分析spring解析請求參數(shù)的過程。 InvocableHandlerMethod的getMethodArgumentValues方法,會解析請求參數(shù)。 在上面的代碼中:args[i] = this.resolvers.resolveArgument(parameter, mavContainer, request, this.dataBinderFactory);完成對參數(shù)的解析

    2024年02月02日
    瀏覽(22)
  • 38、springboot為 spring mvc 提供的靜態(tài)資源管理,覆蓋和添加靜態(tài)資源目錄

    38、springboot為 spring mvc 提供的靜態(tài)資源管理,覆蓋和添加靜態(tài)資源目錄

    ▲ 默認(rèn)的四個靜態(tài)資源目錄: /META-INF/resources /resources /static /public ▲ ResourceProperties.java類的源代碼,可看到CLASSPATH_RESOURCE_LOCATIONS常量的定義: CLASSPATH_RESOURCE_LOCATIONS = new String[]{“classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”}; 這意味

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包