Spring MVC資料處理和亂碼問題詳解

2022-10-06 02:39:09 字數 3128 閱讀 8074

1.1.1 提交的網域名稱稱和處理方法的引數名一致

提交資料:http://localhost:8080/hello?name=test

處理方法:

@requestmapping("/hello")

public string hello(string name)

後台輸出test

1.1.2 提交的網域名稱稱和處理方法的引數名不一致

提交資料:http://localhost:8080/hello?username=test

處理方法:

//@requestparam("username") : username提交的域的名稱 .

@requestmapping("/hello")

public string hello(@requestparam("username") string name)

1.1.3 提交的是乙個物件

要求提交的表單域和物件的屬性名一致,引數使用物件即可

1. 實體類

@getter

@setter

@allargsconstructor

@noargsconstructor

public class user

2. 提交資料:

3. 處理方法

@requestmapping("/user")

public string user(user user)

後台輸出 : user

說明:如果使用物件的話,前端傳遞的引數名和物件名必須一致,否則就是null。

1.2.1 通過modelandview

}1.2.2 通過modelmap

@requestmapping("/hello")

public string hello(@requestparam("username") string name, modelmap model)

1.2.3 通過model

@requestmapping("/ct2/hello")

public string hello(@requestparam("username") string name, model model)

1.2.4 對比

就對於新手而言簡單來說使用區別就是:

model 只有寥寥幾個方法只適合用於儲存資料,簡化了新手對於model物件的操作和理解;

modelmap 繼承了 linkedmap ,除了實現了自身的一些方法,同樣的繼承 linkedmap 的方法和特性;

modelandview 可以在儲存資料的同時,可以進行設定返回的邏輯檢視,進行控制展示層的跳轉。

在web目錄下編寫乙個提交表單,注意開啟視**析器

@controller

public class encodingcontroller

}不得不說,亂碼問題是在我們開發中十分常見的問題,也是讓我們程式猿比較頭大的問題!

以前亂碼問題通過過濾器解決 , 而springmvc給我們提供了乙個過濾器 , 可以在web.xml中配置

修改了xml檔案需要重啟伺服器!

encoding

org.springframework.web.filter.characterencodingfilter

encoding

utf-8

encoding

/*但是我們發現 , 有些極端情況下.這個過濾器對get的支援不好 .

處理方法 :

3.1.1 修改tomcat配置檔案:

encoding

org.springframework.web.filter.characterencodingfilter

encoding

utf-8

www.cppcns.compping>

encoding

/* 3.1.2 自定義過濾器

/*** 解決get和post請求 全部亂碼的過濾器

*/public class genericencodingfilter implements filter

@override

public void dofilter(servletrequest request, servletresponse response, filterchain chain) throws ioexception, servletexception

@override

public void init(filterconfig filterconfig) throws servletexception }

//自定義request物件,httpservletrequest的包裝類

// 對需要增強方法 進行覆蓋

@override

public map getparametermap() catch (unsupportedencodingexception e)

} else if (method.equalsignorecase("get")) catch (unsupportedencodingexception e)

} }} hasencode = true;

} return parametermap;

} return super.getparametermap(); }

//取乙個值

@override

public string getparameter(string name)

return values[0]; // 取回引數的第乙個值 }

//取所有值

@override

public string getparametervalues(string name)

}然後在web.xml中配置這個過濾器即可! 

參考,**教程,原始碼

springMVC 資料處理

a 提交的網域名稱稱喝處理方法的引數名一致即可 處理方式 public string hello string name throws ioexception b 如果網域名稱名稱和引數名不一致 提交的資料 處理方法 public string hello requestparam username...

spring MVC 資料處理

a 提交的網域名稱稱喝處理方法的引數名一致即可 處理方式 public string hello string name throws ioexception b 如果網域名稱名稱和引數名不一致 提交的資料 處理方法 public string hello requestparam username...

Spring MVC資料處理

spring mvc怎麼提交資料和怎麼將資料顯示到ui層 資料提交 1 提交的網域名稱稱和處理方法的引數名稱一致即可 這種方式和struts2相比爽很多,因為是作為方法的引數進行傳遞的,是乙個區域性變數,用過以後就被 了,而struts2是乙個全域性的變數,用了以後還在 但是對struts2來說沒有...