在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中的方法見下篇博客。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.