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

SpringMVC接收參數(shù)

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

接收參數(shù)

Springmvc中,接收頁面提交的數(shù)據(jù)是通過方法形參來接收:

  • 處理器適配器調(diào)用springmvc使用反射將前端提交的參數(shù)傳遞給controller方法的形參

  • springmvc接收的參數(shù)都是String類型,所以spirngmvc提供了很多converter(轉(zhuǎn)換器)在特殊情況下需要自定義converter,如對日期數(shù)據(jù)

1.基本數(shù)據(jù)類型

  • 編寫controller

    @Controller
    @RequestMapping("/account")
    public class AccountController {
    
        @RequestMapping("/findAccount5")
        public String findAccount5(String username,Model model){
            model.addAttribute("msg", username);
            return "success";
        }
        
        @RequestMapping("/findAccount6")
        public String findAccount6(String username,Integer age,Model model){
            model.addAttribute("msg", username+" "+age);
            return "success";
        }
    }
    
  • 在index.jsp里面定義超鏈接

    <a href="/account/findAccount5?username=eric">參數(shù)接收-基本數(shù)據(jù)類型</a>
    <a href="/account/findAccount6?username=eric&age=22">參數(shù)接收-多個基本數(shù)據(jù)類型</a>
    

2.POJO類型參數(shù)綁定

  • 編寫pojo

    public class Account implements Serializable {
        private Integer id;
        private String name;
        private Float money;
        private Address address;
       //省略get set toString方法
     }
    
    public class Address implements Serializable {
        private String provinceName;
        private String cityName;
         //省略get set toString方法
     }
    
  • 編寫controller

    package com.by.controller;
    
    import com.by.pojo.Account;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView;
    
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    
        @RequestMapping("/saveAccount")
        public String saveAccount(Account account, Model model){
            model.addAttribute("msg", account);
            return "success";
        }
    }
    
  • 在index.jsp里面添加表單

    <form action="account/saveAccount" method="post">
        賬戶名稱:<input type="text" name="name"><br/>
        賬戶金額:<input type="text" name="money"><br/>
        賬戶省份:<input type="text" name="address.provinceName"><br/>
        賬戶城市:<input type="text" name="address.cityName"><br/>
        <input type="submit" value="保存">
    </form>
    

3.restful風(fēng)格

  • restful概述:

(Representational State Transfer,表現(xiàn)層狀態(tài)轉(zhuǎn)移):URL定位資源時,用HTTP動詞(GET,POST,DELETE,PUT)描述操作

3.1.restful風(fēng)格URL

  • 在Restful之前的操作:
    http://127.0.0.1/user/query?id=1 根據(jù)用戶id查詢用戶數(shù)據(jù)
    http://127.0.0.1/user/save 新增用戶
    http://127.0.0.1/user/update?id=1 修改用戶信息
    http://127.0.0.1/user/delete?id=1 刪除用戶信息

  • RESTful用法:
    http://127.0.0.1/user/1 GET 根據(jù)用戶id查詢用戶數(shù)據(jù)
    http://127.0.0.1/user POST 新增用戶
    http://127.0.0.1/user PUT 修改用戶信息
    http://127.0.0.1/user/1 DELETE 刪除用戶信息

  • RESTful總結(jié):

    Restful風(fēng)格就是請求url統(tǒng)一,根據(jù)不同的請求方式,請求不同的后臺方法。如果需要攜帶參數(shù),在url上使用/{}占位符。

3.2.@PathVaribale

  • 作用

    用于綁定url中的占位符。例如:/account/{id},這個{id}就是url占位符

    url支持占位符是spring3.0之后加入的,是springmvc支持rest風(fēng)格url的重要標(biāo)志。

  • 描述需要使用指定的請求方式來請求該方法

    @Controller
    @RequestMapping("/account")
    public class AccountController {
        
    	@RequestMapping(value="/findAccount7/{id}")
        public String findAccount11(@PathVariable Integer id, Model model){
            model.addAttribute("msg", id);
            return "success";
        }
    }
    
  • 測試:在index.jsp里面定義超鏈接

    <a href="/account/findAccount7/123">restful傳參</a><br>
    

請求參數(shù)亂碼問題

POST請求方式解決亂碼問題

  • 在web.xml里面設(shè)置編碼過濾器

    <filter>
      <filter-name>CharacterEncodingFilter</filter-name>
      <filter-class>
        	org.springframework.web.filter.CharacterEncodingFilter
      </filter-class>
      <!-- 設(shè)置過濾器中的屬性值 -->
      <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
      </init-param>
    </filter>
    <!-- 過濾所有請求 -->
    <filter-mapping>
      <filter-name>CharacterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    
  • 測試

GET請求方式解決亂碼問題

  • tomcat對GET和POST請求處理方式是不同的,GET請求的編碼問題,要改tomcat的 配置信息,如下:

    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <port>8080</port>
            <path>/</path>
            <!--按UTF-8進(jìn)行編碼-->
            <uriEncoding>UTF-8</uriEncoding>
        </configuration>
    </plugin>
    

自定義類型轉(zhuǎn)換器

使用場景

  • 在index.jsp里面添加日期類型

        <form action="account/saveAccount" method="post">
          賬戶名稱:<input type="text" name="name"><br/>
          賬戶金額:<input type="text" name="money"><br/>
          賬戶省份:<input type="text" name="address.provinceName"><br/>
          賬戶城市:<input type="text" name="address.cityName"><br/>
          開戶日期:<input type="text" name="date"><br/>
          <input type="submit" value="保存">
        </form>
    
  • 在pojo里面添加日期類型

    public class Account implements Serializable {
        private Integer id;
        private String name;
        private Float money;
        private Address address;
        //添加日期類型
        private Date date;
        //省略get set toString方法
    }    
    
  • 測試

  • 原因

    我們前臺傳遞的是字符串類型的參數(shù),但是后臺使用的是Date類型接收的。我們期望springmvc可以幫我們做數(shù)據(jù)類型的自動轉(zhuǎn)換,顯然沒有做,所以我們需要自己自定義類型轉(zhuǎn)換器。

自定義類型轉(zhuǎn)換器

  1. Converter接口說明:

  2. 定義一個類,實現(xiàn)Converter接口

    public class DateConverter implements Converter<String, Date> {
        @Override
        public Date convert(String source) {
            try {
                DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                return format.parse(source);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
    }
    
  3. 在 springmvc.xml配置文件中配置類型轉(zhuǎn)換器

    	<!--開啟springmvc注解支持-->
        <mvc:annotation-driven conversion-service="cs"></mvc:annotation-driven>
        <!-- 配置類型轉(zhuǎn)換器工廠 -->
        <bean id="cs"
              class="org.springframework.context.support.ConversionServiceFactoryBean">
            <!-- 給工廠注入一個新的類型轉(zhuǎn)換器 -->
            <property name="converters">
                <set>
                    <!-- 配置自定義類型轉(zhuǎn)換器 -->
                    <bean class="com.by.converter.DateConverter"></bean>
                </set>
            </property>
        </bean>
    

使用ServletAPI接收參數(shù)

  • 編寫controller

    @Controller
    @RequestMapping("/account")
    public class AccountController {
    
        @RequestMapping("/findAccount8")
        public String findAccount8(HttpServletRequest request, 
                                   HttpServletResponse response){
            String username = request.getParameter("name");
            String age = request.getParameter("age");
            request.setAttribute("msg",username+" "+age);
            return "success";
        }
    }
    
  • 在index.jsp里面定義超鏈接文章來源地址http://www.zghlxwxcb.cn/news/detail-806391.html

    <a href="/account/findAccount8?username=eric&age=19">Servlet接收參數(shù)</a>
    

到了這里,關(guān)于SpringMVC接收參數(shù)的文章就介紹完了。如果您還想了解更多內(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學(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)
  • Spring MVC學(xué)習(xí)之——如何接收請求傳過來的參數(shù)

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

    2024年01月20日
    瀏覽(34)
  • 【Spring教程28】Spring框架實戰(zhàn):從零開始學(xué)習(xí)SpringMVC 之 請求與請求參數(shù)詳解

    【Spring教程28】Spring框架實戰(zhàn):從零開始學(xué)習(xí)SpringMVC 之 請求與請求參數(shù)詳解

    歡迎大家回到《Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實現(xiàn),如果您對Maven還很陌生,請移步本人的博文《如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《PostMan工具的安裝與使用技巧》 前面我們已經(jīng)完成了入門案例相關(guān)的知識學(xué)

    2024年02月03日
    瀏覽(29)
  • 五、Spring MVC 接收請求參數(shù)以及數(shù)據(jù)回顯、亂碼問題

    五、Spring MVC 接收請求參數(shù)以及數(shù)據(jù)回顯、亂碼問題

    客戶端或者前端通過 URL 請求傳遞過來的參數(shù),在控制器中如何接收? 1、當(dāng)參數(shù)和 Controller 中的方法參數(shù)一致時,無需做處理,可以正常接收 代碼示例以及對應(yīng) URL http://localhost:8080/user?name=sys 測試結(jié)果 2、當(dāng)參數(shù)和 Controller 中的方法參數(shù)不一致時,需要通過 @RequestParam 控制

    2024年02月12日
    瀏覽(22)
  • 在 Spring MVC 中,用于接收前端傳遞的參數(shù)的注解常用的有以下幾種

    目錄 1、對于json請求體參數(shù), 2、對于路徑傳參 3、對于query傳參 4、對于form-data參數(shù), 總結(jié): ? 1、對于json請求體參數(shù), 請求頭的Content-Type應(yīng)為application/json。在前端,可以使用 data格式 傳參。在后端,可以使用 @RequestBody 注解來接收參數(shù)。 ? 2、對于路徑傳參 (例如:test/

    2024年01月23日
    瀏覽(19)
  • 線程方法接收參數(shù)和返回參數(shù),Java的兩種線程實現(xiàn)方式對比

    總所周知,Java實現(xiàn)多線程有兩種方式,分別是繼承Thread類和實現(xiàn)Runable接口,那么它們的區(qū)別是什么? 繼承 Thread 類: 通過繼承 Thread 類,你可以創(chuàng)建一個直接表示線程的類。你可以覆蓋 Thread 類中的 run 方法來定義線程的邏輯。當(dāng)調(diào)用 start 方法啟動線程時,會執(zhí)行該類中的

    2024年02月11日
    瀏覽(29)
  • json傳參到j(luò)ava接口部分參數(shù)接收不到

    json傳參到j(luò)ava接口部分參數(shù)接收不到

    使用postman傳參時,接口參數(shù)中有部分參數(shù)被傳遞進(jìn)了接口內(nèi)部,還有部分參數(shù)沒有接收到,如下圖:第一張圖是postman接口參數(shù),第二張圖是接收到的參數(shù) 圖一: 圖二: 這個問題其實解決很簡單,就是json數(shù)據(jù)轉(zhuǎn)化為實體的過程,找尋get、set方法失敗,導(dǎo)致數(shù)據(jù)無法正常從

    2023年04月10日
    瀏覽(29)
  • 線程方法接收參數(shù)示例,Java的兩種線程實現(xiàn)方式區(qū)別

    總所周知,Java實現(xiàn)多線程有兩種方式,分別是繼承Thread類和實現(xiàn)Runable接口,那么它們的區(qū)別是什么? 繼承 Thread 類: 通過繼承 Thread 類,你可以創(chuàng)建一個直接表示線程的類。你可以覆蓋 Thread 類中的 run 方法來定義線程的邏輯。當(dāng)調(diào)用 start 方法啟動線程時,會執(zhí)行該類中的

    2024年02月11日
    瀏覽(54)
  • Java文件導(dǎo)入接口多參數(shù)寫法 (POST方法同時支持接收文件流和其他參數(shù))

    Java文件導(dǎo)入接口多參數(shù)寫法 (POST方法同時支持接收文件流和其他參數(shù))

    使用表單方式進(jìn)行傳輸,需要注意其他參數(shù)需要使用 @RequestPart 注解進(jìn)行接收,因為在 post 方法中表單傳輸使用@RequestParam 接收 json 格式默認(rèn)視為字符串類型,接口無法映射對應(yīng)實體類 @RequestParam 依賴Converter or PropertyEditor進(jìn)行數(shù)據(jù)解析, @RequestPart參考’Content-Type’ header,依賴

    2024年02月16日
    瀏覽(32)
  • java關(guān)于后端怎么去接收Date、LocalDateTime類型的參數(shù)

    Date類型后端入?yún)⒌母袷侥J(rèn)為2019/01/18 11:11:11 Get方式傳參 是 沒有時區(qū)的影響的 @JsonFormat的作用: 返回給前端的時間是經(jīng)過@JsonFormat格式化的時間。 @DateTimeFormat的作用: 前端需要按照@DateTimeForma的格式進(jìn)行傳參 示例: Date 類型直接作為參數(shù)的情況 Date類型屬性的實體類作為參

    2024年02月05日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包