在SpringMVC中將view的數據封裝成Model的方法

 以登錄爲例,jsp中有name和pass變量,現在有一個Model爲User定義如下:
public class User {
    private String name;  
    private String pass; 

    public String getName(){
     return name;
    }
    public void setName(String name){
     this.name = name;
    }
    public String getPass(){
     return pass;
    }
    public void setPass(String pass){
     this.pass = pass;
    }
}

    1.在Controller中收到請求用servlet請求的方式得到value的方法如下:
public String login (HttpServletRequest request, ModelMap modelMap) {
   String name =  request.getParameter("name");
   String pass =  request.getParameter("pass");
}
然後通過自己寫代碼生成對象User user = new User ();
                                                     user.setName(name);
                                                     user.setPass(pass);
    通過1的方法雖然能實現獲得User實例,但是失去了Springmvc工廠模式的優勢了,SpringMVC框架自身就能來做生成實例的事情,1中的方法顯然沒有充分應用SpringMVC框架。

    2.利用SpringMVC的功能,將view中的數據封裝到Model中:
    由於項目緊急,精力有限筆者沒有從SpringMVC底層深入剖析,根據筆者實際的工作經驗,要將view中的數據封裝到Model中需要進行下面四步準備工作:
   a. User類必須有一個不包含任何參數的默認構造函數
   b. User類必須有一個給所有成員變量賦值的構造函數
   c. User類中的屬性名字和表單中的輸入控件的名稱一樣
   d. User類中的各屬性必須有默認的getter、setter方法
    Controller中的具體寫法如下:
    public String login (User user) {
    String name = user.getName();
    String password = user.getPass();
}
這樣框架就自動生成了user實例並賦給了函數參數。
    model具體寫法如下:
public class User {
    private String name;  
    private String pass; 
    public User(){}
    public User(String name,String pass){
     super(); 
     this.name = name;
     this.pass = pass;
    }
    public String getName(){
     return name;
    }
    public void setName(String name){
     this.name = name;
    }
    public String getPass(){
     return pass;
    }
    public void setPass(String pass){
     this.pass = pass;
    }
}

通過上面方法2就可以將view中的數據封裝在bean中,大大簡化了不少賦值的工作,傳值傳對象還能讓代碼簡潔。

將Controller中從dao中查詢到的數據封裝到Model中並將Model傳遞到view中的方法見下篇博客。
發佈了28 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章