日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring MVC(三)--控制器接受普通请求参数

發(fā)布時(shí)間:2024/4/15 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC(三)--控制器接受普通请求参数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Spring MVC中控制器接受參數(shù)的類方式有以下幾種:

  • 普通參數(shù):只要保證前端參數(shù)名稱和傳入控制器的參數(shù)名稱一致即可,適合參數(shù)較少的情況;
  • pojo類型:如果前端傳的是一個(gè)pojo對(duì)象,只要保證參數(shù)名稱和pojo屬性一致即可;
  • 注解方式:當(dāng)前端參數(shù)名和控制器名稱不一致時(shí)可以使用注解方式,比如前端是param_id,而控制器中是paramId的情況;
  • URL方式:當(dāng)前端以restful格式傳遞參數(shù)時(shí),后臺(tái)使用這種方式接受;
  • JSON方式:前后端如果用json方式交互時(shí),可以使用這種方式,這是常用的方式;
  • 列表方式:如果前端傳的是一個(gè)列表,列表元素可以是基本類型也可以是引用類型,使用這種方式接受;
  • 表單序列化方式:有時(shí)候如果表單數(shù)據(jù)較少,控制器可以用這種方式接受表單序列化后的數(shù)據(jù);

以上七中類型,我將一一進(jìn)行總結(jié),這幾種方式花了我一天時(shí)間測(cè)試調(diào)試,真實(shí)醉了,看著簡(jiǎn)單,實(shí)踐起來(lái)總會(huì)出現(xiàn)你意想不到的問(wèn)題,所以還是能動(dòng)手就不吵吵!

下面是我創(chuàng)建的頁(yè)面,包含了八種方式(注意??:上面說(shuō)的七種中,列表方式根據(jù)元素類型分成了基本類型和引用類型)

以上八種方式,我將一一進(jìn)行介紹,舉出實(shí)例,本文介紹控制器接受簡(jiǎn)單參數(shù)類型的方式。

這種方式要求http傳遞的參數(shù)名稱和控制器中的參數(shù)名稱一致,這樣不需要注解就能獲取了。下面舉實(shí)例,場(chǎng)景是這樣的:

在上圖簡(jiǎn)單參數(shù)傳遞中輸入名稱和描述點(diǎn)擊提交按鈕之后進(jìn)入一個(gè)新的頁(yè)面,在這個(gè)頁(yè)面獲取到剛才傳過(guò)來(lái)的參數(shù)。參數(shù)傳遞的過(guò)程為:

1??點(diǎn)擊提交按鈕之后表單提交給對(duì)應(yīng)的控制器;

2??控制器接受參數(shù),并將參數(shù)渲染到對(duì)應(yīng)的視圖中;

3??顯示渲染后的頁(yè)面;

這三個(gè)步驟需要兩個(gè)頁(yè)面和一個(gè)控制器,下面直接貼代碼:

1、輸入?yún)?shù)頁(yè)面

1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <% 8 String root = request.getContextPath(); 9 String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() 10 + root + "/"; 11 %> 12 <script type="text/javascript" 13 src="<%=basePath%>jslib/jquery-1.8.3.min.js"></script> 14 <script type="text/javascript" src="<%=basePath%>jslib/jquery.form.js"></script> 15 <script type="text/javascript" src="<%=basePath%>js/param.js"></script> 16 <link href="<%=basePath%>css/param.css" type="text/css" rel="stylesheet"> 17 <title>Insert title here</title> 18 </head> 19 <body> 20 21 <!-- 簡(jiǎn)單參數(shù)傳遞 --> 22 <p style="text-align: center;color: red;font-size: x-large;">Spring MVC控制器接受參數(shù)方式測(cè)試</p> 23 <div class="param"> 24 <div class="simple public"> 25 <p style="text-align: center;">簡(jiǎn)單參數(shù)傳遞</p> 26 <form id="paramForm" action="<%=basePath%>param/simpleParam" 27 method="post"> 28 <table> 29 <tr> 30 <td>名稱:</td> 31 <td><input type="text" name="paramName" value=""></td> 32 </tr> 33 <tr> 34 <td>描述:</td> 35 <td><input type="text" name="paramDesc" value=""></td> 36 </tr> 37 <tr> 38 <td></td> 39 <td style="text-align: right;"><input type="submit" 40 value="提交" id="setSimpleParam"></td> 41 </tr> 42 </table> 43 </form> 44 </div> 45 46 </body> 47 </html>

注意上面代碼中紅色加粗的部分,在spring MVC中獲取引入靜態(tài)資源的方式,我是這樣引入的,因?yàn)槿绻褂孟鄬?duì)路徑會(huì)報(bào)錯(cuò),找不到資源,除此之外,還要在web.xml中配置靜態(tài)資源的攔截,否則引入js\css等靜態(tài)資源是會(huì)報(bào)404,盡管路徑?jīng)]錯(cuò)。配置如下:

1 <servlet-mapping> 2 <servlet-name>default</servlet-name> 3 <url-pattern>*.js</url-pattern> 4 </servlet-mapping> 5 6 <servlet-mapping> 7 <servlet-name>default</servlet-name> 8 <url-pattern>*.css</url-pattern> 9 </servlet-mapping>

還可以配置圖片等的路徑。

2、控制器

@Controller @RequestMapping("/param") public class ParamController {/*** 獲取簡(jiǎn)單參數(shù):參數(shù)名稱必須和表單中的name保持一致* * @param paramname* @param paramDesc* @return*/@RequestMapping(value = "simpleParam", method = RequestMethod.POST)public ModelAndView getSimpleParam(String paramName, String paramDesc) {ModelAndView mv = new ModelAndView();System.out.println(paramName);System.out.println(paramDesc);mv.addObject("paramName", paramName);mv.addObject("paramDesc", paramDesc);mv.setViewName("simpleParam");return mv;} }

在上面的控制器中,需要注意以下兩點(diǎn):

  • 方法接受參數(shù)的方式是直接傳參數(shù)名,這個(gè)參數(shù)名就是第一步表單中的兩個(gè)參數(shù),也就是http協(xié)議傳遞給后臺(tái)的參數(shù),它們必須保持一致,否則會(huì)接受失敗!
  • 控制器返回的視圖名稱是simpleParam,所以接下來(lái)需要?jiǎng)?chuàng)建這個(gè)頁(yè)面;

3、創(chuàng)建返回視圖

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Simple Param</title> </head> <body><h2>獲取到的參數(shù)名稱:<label>${paramName }</label> <br /> 獲取到的參數(shù)描述:<label>${paramDesc }</label></h2></body> </html>

這個(gè)視圖中渲染了控制器返回的數(shù)據(jù),獲取的參數(shù)名就是控制器通過(guò)addObject()方法設(shè)置的鍵名;

通過(guò)以上三步,就完成了簡(jiǎn)單參數(shù)的傳遞和接受過(guò)程,下面進(jìn)行測(cè)試,在頁(yè)面輸入名稱和描述,如下圖所示:

提交之后的結(jié)果如下:

可以看到獲取成功了。

4、總結(jié)

這種方式一般比較適合參數(shù)較少的情況,而且一定一定要保持控制器中的參數(shù)名和前端傳遞的參數(shù)名是完全一樣的,這樣Spring MVC才能自動(dòng)映射。顯然,當(dāng)參數(shù)較多時(shí),這種方式會(huì)在控制器傳多個(gè)參數(shù),顯得不太好看,這個(gè)時(shí)候我們可以將這些參數(shù)封裝成一個(gè)pojo對(duì)象,具體過(guò)程看下一篇文章。

?

轉(zhuǎn)載于:https://www.cnblogs.com/hellowhy/p/9740779.html

總結(jié)

以上是生活随笔為你收集整理的Spring MVC(三)--控制器接受普通请求参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。