springmvc 頁面傳值的方法,有5種。


springmvc 傳值,有5種方法,(這篇文章為轉載),

1.request獲取值:

@RequestMapping("/request.action")
public String request(HttpServletRequest request){
    String value= (String) request.getAttribute("value");
    String val=request.getParameter("value");
    return "index";
}

 

request的getAttribute和getParameter有什么區別呢?


getAttribute:取得是setAttribute設定的值,session范圍的值,可以設置為object,對象,字符串;getAttribute獲取的值是web容器內部的,是具有轉發關系的web組件之間共享的值;用於服務端重定向


getParameter:取得是從web的form表單的post/get,或者url傳過來的值,只能是String字符串;getParameter獲取的值是web端傳到服務端的,是獲取http提交過來的數據;用於客戶端重定向。


2.使用路徑變量@PathVariable綁定頁面url路徑的參數,用於進行頁面跳轉

@Controller
public class BaseController {

    @RequestMapping("/goUrl/{folder}/{file}")
    public String goUrl(@PathVariable String folder,@PathVariable String file){
        return  folder+"/"+file;
    }
}

 

3.通過@RequestParam綁定頁面傳來的參數,效果跟

String id=request.getParameter(“id”)是一樣的:

@RequestMapping("/test.action")
public void test(@RequestParam("id") String id){
    System.out.println("id:"+id);
    
}

4.自動注入,實體類屬性有setter,getter方法,前端form表單的name對應實體的屬性名,后台直接可以通過該實體類自動把參數綁定到類的屬性。

比如:實體類

public class Content {
   

   private String content;
public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
} 
}

 

form表單:

<form action="<%=request.getContextPath()%>/content" method="post" enctype="multipart/form-data">

    商品描述:<textarea  name="content" rows="2" cols="20"></textarea><br>
   
  
    <input type="submit" value="提交"/>
</form>

后台接收數據:

@RequestMapping("/content")
public  void contetn(Content content){
    System.out.println("content:"+content.getContent());
}

 

5.使用RequestBody接受前端傳來的json數組,對象。ResponseBody把數據返回

@RequestMapping("/test.action")
@ResponseBody
public void test(@RequestBody List<Content> list){
  for (Content content:list){
      System.out.println(content.toString());
  }

}

 


免責聲明!

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



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