spring mvc 前后端數據交互方式(整理)


Form表單提交

基本數據類型

@requestMapping(method.do(請求路徑名))

Public void test(int count){}

 

 

表單中的name值必須和controller的參數變量名保持一致。

如果不一致可以使用@RequestParam()注解綁定請求參數

如果頁面傳遞的參數為“”或者null會報錯,

 

包裝類型

 

 

 

 

 

和基本類型使用方法相同。

如果前台的傳遞的值為null或者“”則controller中對應的變量值為null

 

 

自定義復合對象類型

 

 

 

 

 

 

 

 

 

 

所需信息封裝成一個自定義的對象,變量名需要和表單中的name名稱相同,

 

User對象中有ContactInfo屬性,在表單代碼中,需要使用“屬性名(對象類型的屬性).屬性名”來命名inputname

 

 

list綁定

 

 

Controller方法中不能直接使用list參數。不能像下面這么寫,會報錯。Could not instantiate bean class [java.util.List]: Specified class is an interface

使用list傳遞參數的時候,

 

 

缺點:那么名稱易錯。當需要單獨傳遞一個list的時候很麻煩

 

set綁定

Setlist一樣需要綁定到對象上才能夠傳遞。

而且,在對象中必須要添加相應數量的模型對象。傳多少個就要添加多少個user對象。

 

 

 

接受數據方式:

 

 

缺點;比list更麻煩。

map綁定

Map比較靈活,它也需要綁定在對象上,而不能直接寫在Controller方法的參數中。

 

綁定對象:

 

 

 

接收數據:

 

 

 

提醒

 

 

添加Required=false 表示如果參數a為空或者null,不拋出異常。

 

使用pojo方式接收參數,前台屬性的name值,需要和javabean中的屬性名一致。Model 用來向前天發送數據。

 

 

 

 

多選框傳值:

如果前台有相同name值的數據傳遞則要使用數組來接收,相同名稱的可能是有這樣的數值但更多的是多選框,所以我們要使用數組來接收這樣的值

 

@RequestMapping(value="select.do")

public Stringhello(String []username,Model model){

 

    System.out.println(username.length)

    Stringname1=username[0];

    Stringname2=username[1];

    model.addAttribute("helloworld", "hello"+name1+name2);

    return"welcome";

 

}

 

httpservletRequest獲取前台傳遞的參數:

 

@RequestMapping(value="/hello.do")

publicString hello(HttpServletRequest request,Model model){

  String name=request.getParameter("name");

  System.out.println(name);

model.addAttribute("helloworld","hello"+name);

return"welcome";

}

 

向前台發送參數:

傳遞對象:

 

 

傳遞list集合:

 

 

 

modelandview對象中添加數據:

 

 

 

使用map。跟model方法類似。

 

 

 

 

 

異步傳參方法:

前台發送:

  $.ajax({

           url:"selectinfo.do",

           type:"post",

           data:{name:"name1",age:2},

           dataType:"json",

           success:function(data){

                  arr=eval(data);

                  alert("長度"+arr.length);

                  alert(arr);

                  for(var i=0;i<arr.length;i++){

                    alert("內容"+arr[i].title);

             }

            }

            });

 

接收方式:

使用request接收

 

 

直接用變量參數接收

 

 

javabean對象接收

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM