您好,登錄后才能下訂單哦!
這篇文章主要講解了“js怎么傳各種類型參數到Controller層”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“js怎么傳各種類型參數到Controller層”吧!
用來處理Content-Type: 為 application/x-www-form-urlencoded編碼的內容。(Http協議中,如果不指定Content-Type,則默認傳遞的參數就是application/x-www-form-urlencoded類型)
RequestParam可以接受簡單類型的屬性,也可以接受對象類型。
實質是將Request.getParameter() 中的Key-Value參數Map利用Spring的轉化機制ConversionService配置,轉化成參數接收對象或字段。
處理HttpEntity傳遞過來的數據,一般用來處理非Content-Type: application/x-www-form-urlencoded編碼格式的數據。
GET請求中,因為沒有HttpEntity,所以@RequestBody并不適用。
POST請求中,通過HttpEntity傳遞的參數,必須要在請求頭中聲明數據的類型Content-Type,SpringMVC通過使用HandlerAdapter 配置的HttpMessageConverters來解析HttpEntity中的數據,然后綁定到相應的bean上。
該注解有兩個用法,一個是用于方法上,一個是用于參數上;
用于方法上時: 通常用來在處理@RequestMapping之前,為請求綁定需要從后臺查詢的model;
用于參數上時:用來通過名稱對應,把相應名稱的值綁定到注解的參數bean上;要綁定的值來源于:
A) @SessionAttributes 啟用的attribute 對象上;
B) @ModelAttribute 用于方法上時指定的model對象;
C) 上述兩種情況都沒有時,new一個需要綁定的bean對象,然后把request中按名稱對應的方式把值綁定到bean中。
/** * 傳遞字符串參數 */ getStringParam:function(){ var param={"stringParams":hidden_input_value}; //var param={};兩種方式都行 // param.stringParams=hidden_input_value; $.ajax({ url:basePath+"/ParamFormatController/getStringParam.shtml", data:param, type : 'POST', dataType : 'json', success:function(data){ }, }) },
Controller層
/** * 接收字符串類型參數 * * @param userName * @return */ @RequestMapping("/getStringParam") @ResponseBody public String getStringParam(String userName) { String password = userService.getUserpassword(userName); return password; }
/** * 傳遞對象參數 */ setObjectParam:function(){ var objectParams={}; objectParams.name="張三"; objectParams.age="19"; objectParams.sex="男"; $.ajax({ url:basePath+"/ParamFormatController/getObjectParam.shtml", data:objectParams, type : 'POST', dataType : 'json', success:function(data){ }, }) },
/** * 接收對象參數 * * @param * @return */ @RequestMapping("/getObjectParam") @ResponseBody public void getObjectParam(Student objectParams) { System.out.println("姓名:" + objectParams.getName()); System.out.println("性別:" + objectParams.getSex()); System.out.println("年齡:" + objectParams.getAge()); }
/** * 傳遞復雜對象參數(包含id,username,String[],List<Person>) */ setHardObjectParam:function(){ var objectParams = { schoolName:"鵬峰中學", data:new Date(), teacherNames:["張老師","李老師","王老師"], students:[ {name:"小明",sex:"男",age:"19"}, {name:"小紅",sex:"男",age:"19"}, ] }; $.ajax({ type: "POST", url:basePath+"/ParamFormatController/getHardObjectParam.shtml", data: JSON.stringify(objectParams),//重點 contentType:"application/json" //指定類型 }) },
School類
public class School { private String[] teacherNames; private String schoolName; private Date data; private List<Student> students; public String[] getTeacherNames() { return teacherNames; } public void setTeacherNames(String[] teacherNames) { this.teacherNames = teacherNames; } public String getSchoolName() { return schoolName; } public void setSchoolName(String schoolName) { this.schoolName = schoolName; } public Date getData() { return data; } public void setData(Date data) { this.data = data; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } }
Controoler
/** * 接收復雜對象參數(包含id,username,String[],List<Person>) * * @param * @return */ @RequestMapping("/getHardObjectParam") @ResponseBody public void getHardObjectParam(@RequestBody School objectParams) { System.out.println("學校名:" + objectParams.getSchoolName()); }
/** * 傳遞數組與字符串 */ getArrayAndStringParam:function(){ var pointCodes= new Array(); //定義一數組 pointCodes.push("1"); pointCodes.push("2"); pointCodes.push("3"); pointCodes.push("4"); $.ajax({ url:basePath+"/ParamFormatController/getArrayAndStringParam.shtml", type:"POST", data:{"names":pointCodes,"id":'6'}, dataType:"json", success:function(res){ } }); }, /** * 接收數組與字符串 * * @param * @return */ @RequestMapping("/getArrayAndStringParam") @ResponseBody public void getArrayAndStringParam(@RequestParam(value = "names[]") String[] names, String id) { for (int i = 0; i < names.length; i++) { System.out.println(names[i]); } }
/** * 傳遞字符串List參數 */ getListByStringParam:function(){ var orderNosList = new Array(); orderNosList.push("List1"); orderNosList.push("List2"); orderNosList.push("List3"); orderNosList.push("List4"); $.ajax({ url:basePath+"/ParamFormatController/getListByStringParam.shtml", data:{"StringList":orderNosList}, type : 'POST', dataType : 'json', success:function(data){ }, }) }, /** * 接收字符串List集合 * * @param * @return */ @RequestMapping("/getListByStringParam") @ResponseBody public void getListByStringParam(@RequestParam("StringList[]") List<String> list) { for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } }
/** * 接收對象List集合 * * @param * @return */ @RequestMapping(value = "/getListByObjectParam") @ResponseBody public void getListByObjectParam(@RequestBody List<Student> students) { for (int i = 0; i < students.size(); i++) { Student s = students.get(i); System.out.println(s.getName()); } } /** * 傳遞對象List參數 */ getListByObjectParam:function(){ var param=[]; var data1={"name":"張三","age":"21","sex":"2"}; var data2={"name":"李四","age":"24","sex":"2"}; param.push(data1); param.push(data2); $.ajax({ url:basePath+"/ParamFormatController/getListByObjectParam.shtml", data:JSON.stringify(param), type : 'POST', contentType: "application/json", success:function(data){ }, }) },
后續類型在補充。
感謝各位的閱讀,以上就是“js怎么傳各種類型參數到Controller層”的內容了,經過本文的學習后,相信大家對js怎么傳各種類型參數到Controller層這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。