中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js怎么傳各種類型參數到Controller層

發布時間:2023-02-27 14:56:41 來源:億速云 閱讀:102 作者:iii 欄目:開發技術

這篇文章主要講解了“js怎么傳各種類型參數到Controller層”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“js怎么傳各種類型參數到Controller層”吧!

一 .@RequestBody和@RequestParam區別

1.@RequestParam

用來處理Content-Type: 為 application/x-www-form-urlencoded編碼的內容。(Http協議中,如果不指定Content-Type,則默認傳遞的參數就是application/x-www-form-urlencoded類型)

RequestParam可以接受簡單類型的屬性,也可以接受對象類型。 

實質是將Request.getParameter() 中的Key-Value參數Map利用Spring的轉化機制ConversionService配置,轉化成參數接收對象或字段。

2.@RequestBody

處理HttpEntity傳遞過來的數據,一般用來處理非Content-Type: application/x-www-form-urlencoded編碼格式的數據。

  • GET請求中,因為沒有HttpEntity,所以@RequestBody并不適用。

  • POST請求中,通過HttpEntity傳遞的參數,必須要在請求頭中聲明數據的類型Content-Type,SpringMVC通過使用HandlerAdapter 配置的HttpMessageConverters來解析HttpEntity中的數據,然后綁定到相應的bean上。 

3.@ModelAttribute

該注解有兩個用法,一個是用于方法上,一個是用于參數上;

用于方法上時: 通常用來在處理@RequestMapping之前,為請求綁定需要從后臺查詢的model;

用于參數上時:用來通過名稱對應,把相應名稱的值綁定到注解的參數bean上;要綁定的值來源于:

  • A) @SessionAttributes 啟用的attribute 對象上;

  • B) @ModelAttribute 用于方法上時指定的model對象;

  • C) 上述兩種情況都沒有時,new一個需要綁定的bean對象,然后把request中按名稱對應的方式把值綁定到bean中。

二.一些常用的傳參類型 

1.字符串類型參數

/**
 * 傳遞字符串參數
 */
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;
    }

2.對象類型

/**
		 * 傳遞對象參數
		 */
		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());
 
    }

3.復雜對象類型

/**
		 * 傳遞復雜對象參數(包含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());
 
    }

4.數組與字符串

/**
         * 傳遞數組與字符串
         */
        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]);
        }
 
    }

5.List字符串集合

        /**
         * 傳遞字符串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));
        }
 
    }

6.List對象集合

    /**
     * 接收對象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層這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桐梓县| 修文县| 临邑县| 惠安县| 仪陇县| 阳山县| 清徐县| 三原县| 安庆市| 潞城市| 万盛区| 旅游| 长葛市| 柏乡县| 宜昌市| 仲巴县| 连云港市| 达州市| 盐源县| 和硕县| 闸北区| 榆树市| 嘉兴市| 佛坪县| 娱乐| 宕昌县| 定边县| 息烽县| 金溪县| 青田县| 长白| 灵山县| 北宁市| 石屏县| 兰西县| 玉溪市| 南昌市| 巴塘县| 山东| 临沭县| 巴青县|