1. 程式人生 > >Spring MVC3在controller和檢視之間傳遞引數的方法:

Spring MVC3在controller和檢視之間傳遞引數的方法:

一, 從controller往檢視傳遞值,controller—->檢視

1)簡單型別,如int, String,直接寫在controller方法的引數裡,是無法傳遞到檢視頁面上的(經測試)

2)可以用Map,其鍵值可以在頁面上用EL表示式${鍵值名}得到,

3)也可以用Model類物件來傳遞,有addAttribute(key, value)方法,其鍵值可以在頁面上用EL表示式${鍵值名}得到,

如果用addAttribute(value)這個方法,會將型別名的首字母改成小寫後,作為鍵值名傳遞過去,

@RequestMapping(value="/say")
 public String say(@RequestParam int id,Model model) {
      System.out.println("say");
      //用hello取值
      model.addAttribute("hello", "value");
      //使用Object的型別作為key,String-->string,用string取值
      model.addAttribute("ok");
      return "hello";
 } 

二,從檢視向controller傳遞值, controller <— 檢視

1)簡單型別,如int, String, 應在變數名前加@RequestParam註解,可能放在路徑裡…/user?x=name
例如:

       @RequestMapping("hello3")
       public String hello3( @RequestParam("name" ) String name,
                               @RequestParam("hobby" ) String hobby){
            System. out
.println("name=" +name); System. out.println("hobby=" +hobby); return "hello" ; }

但這樣就要求輸入裡面必須有這兩個引數了,可以用required=false來取消,例如:
@RequestParam(value=”name”,required=false) String name
但經測試也可以完全不寫這些註解,即方法的引數寫String name,效果與上面相同。還可以直接在路徑中的值傳過來,/user/11,用@PathVariable(“userId”)獲得,用如下:

 @RequestMapping(path = {"/user/{userId}"},method = {RequestMethod.GET})
    public String redirect(@PathVariable("userId") String userId,Model model) {
 model.addAttribute("vos",getQuestions(Integer.parseInt(userId),0,10));
 return "index";
   }

2)物件型別:

    @RequestMapping("/hello4" )
       public String hello4(User user){
            System.out.println("user.getName()=" +user.getName());
            System.out.println("user.getHobby()=" +user.getHobby());
            return "hello";
   }

Spring MVC會按:
“HTTP請求引數名= 命令/表單物件的屬性名”
的規則自動繫結請求資料,支援“級聯屬性名”,自動進行基本型別資料轉換。

即有一個User類,如下

package model;

public class User {
       private String name ;
       private String hobby ;
       public User(){

      }
       public User(String name, String hobby) {
             this.name = name;
             this.hobby = hobby;
      }
//

…get/set方法略

則頁面上可以用

<form name="form1" action="hello4" method="post">
     <input type="text" name="name"/>
     <input type="text" name="hobby"/>
.

..
提交後,把值直接繫結到user物件上。

相關推薦

[SSM]Spring MVC3在controller檢視之間傳遞引數方法

Spring MVC3在controller和檢視之間傳遞引數的方法: 一, 從controller往檢視傳遞值, controller—->檢視 1)簡單型別,如int, String,直接寫在controller方法的引數裡,是無法傳遞到檢視頁面上

Spring MVC3在controller檢視之間傳遞引數方法

一, 從controller往檢視傳遞值,controller—->檢視 1)簡單型別,如int, String,直接寫在controller方法的引數裡,是無法傳遞到檢視頁面上的(經測試) 2)可以用Map,其鍵值可以在頁面上用EL表示式${鍵值名}

spring mvc 前臺向後臺傳遞引數方法總結

1.restful 前臺程式碼 var userName = "test"; var userMobile = "gz"; $.ajax({                         url:"user/modify/"+username+"/"+userMobile

一種比較好的JNI JavaC++相互傳遞引數返回值的方法

序言 以前在Android上做移動多媒體開發的時候,有很多需要在Java和C++相互傳遞引數的Case,以前因為時間卡的緊,一直沒有去修復這一類的問題,因為能用,沒有出什麼問題,也就沒有想什麼優化方案。最近自己有一些閒暇時間折騰點小玩意兒,也需要從Java和C++之間相互傳遞引數。想

Ajax中PutDelete請求傳遞引數無效的解決方法(Restful風格

在使用Ajax實現Restful的時候,有時候會出現無法Put、Delete請求引數無法傳遞到程式中的尷尬情況,此時我們可以有兩種解決方案:1、使用地址重寫的方法傳遞引數。2、配置web.xml專案環境。 測試的程式為: @RequestMapping(value =

Ajax中PutDelete請求傳遞引數無效的解決方法(Restful風格)

開發環境:Tomcat9.0 在使用Ajax實現Restful的時候,有時候會出現無法Put、Delete請求引數無法傳遞到程式中的尷尬情況,此時我們可以有兩種解決方案:1、使用地址重寫的方法傳遞引數。2、配置web.xml專案環境。 測試的程式為:

C程式設計--結構體(結構體函式之間引數使用)

結構體型別(掌握點): 建立結構體型別 定義結構體型別變數 初始化結構體和引用結構體變數(3種方法,見下) 使用結構體陣列 結構體指標(重要) 指向結構體變數的指標 指向結構體陣列的指標 程式碼案例

TP layui 彈層開啟網址 live/play/id/166/bid/184/cid/22/ccid/191.html傳遞引數方法

<script> //注意:摺疊面板 依賴 element 模組,否則無法進行功能性操作 layui.use(['layer', 'form','element','laydate','jquery'], function(){ var ele

物件字面量傳遞引數方法

函式引數的2種傳遞方式:命名引數、物件字面量方式 函式傳遞引數,在有多個可選引數的情況下傳統的命名引數顯的比較死板,不夠靈活。 最好的做法是對那些必需值使用命名引數,而使用物件字面量來封裝多個可選引數! ......

java流InputStreamString之間的轉換方法

本文轉自 https://blog.csdn.net/lmy86263/article/details/60479350 在Java中InputStream和String之間的轉化十分普遍,本文主要是總結一下轉換的各種方法,包括JDK原生提供的,還有一些外部依賴提供的。 1、Inp

《android studio3》在多個activity之間傳遞引數

z.B:啟動一個特定的Activity Intent intent=new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); 如果想要傳遞Pra的話,就是i.put...在自動跳出的備選中選擇,有很多型別

AndroidActivity之間傳遞引數並跳轉

當前頁面傳出引數: public void First(View v){ //新建一個顯式意圖,第一個引數為當前Activity類物件,第二個引數為你要開啟的Activity類 Intent intent =new Intent(FirstActivity

微信小程式頁面之間傳遞引數的幾種方式

小程式開發過程中,不可避免要遇到不同頁面之間資料通訊的問題,如判斷是否登入等,現做出以下分類總結 一、使用全域性變數實現資料傳遞 使用場景: 購物車介面需要根據是否登入來區別顯示,當沒有登入時提醒去登入,登入後之間顯示自己購物車裡的商品列表

Activity之間傳遞引數(一)

-------siwuxie095 傳遞簡單資料 (1)首先建立一個專案:SendArgs (2)選擇API:21 Android 5.0 (3)選擇Empty Activity

解決Ajax中Restful風格PUTDELETE請求傳遞引數無效

問題:在Ajax中,採用Restful風格PUT和DELETE請求傳遞引數無效,傳遞到後臺的引數值為null原因:         * Tomcat *       1.將請求體中的資料,封裝成一個map *       2.request.getParameter("id"

前端頁面之間傳遞引數

這裡有假如傳遞一個引數,在另一個頁面接收時,只需要js中寫入如下程式碼: localhost:8080/index.jsp?id=1 function showWindowHref() { var sHref = window.location.hr

JNI中jstring char* 之間的轉換方法

在java中由於是unicode編碼,無論是英文字母還是漢字每個字元都是佔用2個位元組。但是在jni中的字元時utf-8編碼,每個字元不是等長的。所以在java和jni呼叫的時候要注意這個問題。 下面是我在網上找到的一些把jstring和char*轉換的一些sampl

Spring AOP AspectJ 之間的差別

面向方面的程式設計(AOP) 是一種程式設計正規化,旨在通過允許橫切關注點的分離,提高模組化。AOP提供方面來將跨越物件關注點模組化。雖然現在可以獲得許多AOP框架,但在這裡我們要區分的只有兩個流行的框架:Spring AOP和AspectJ。這裡將會幫助你基於一些關鍵資訊

【Asp.Net MVC】ControllerView之間傳遞資料

在MVC中,Controller和View之間是如何傳遞資料的呢? 一、Controller向View傳遞資料 1、ViewBag Controller public ViewResult TransData() { ViewBag

php中頁面之間傳遞變數方法總結

在實際的網站開發當中,我們經常會遇到在一個頁面定義的變數,在另外一個頁面也要使用,這就需要我們在頁面之間傳遞變數.下面介紹一些常用的方法: 一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變數用表單的方式再次傳送,比如在使用者登陸後,