1. 程式人生 > >SSM框架下JSP頁面javaScript獲取後端Controller層SpringMVC-Model的值

SSM框架下JSP頁面javaScript獲取後端Controller層SpringMVC-Model的值

my first blogs,SSM框架下JSP頁面javaScript獲取後端Controller層SpringMVC-Model的值


第一次寫部落格,記錄一下自己遇到的一些問題。
ssm框架下,需要將一個list集合由model傳入到jsp頁面的script標籤中,

我一開始使用了幾個方法都報了資料型別錯誤。
資料實際上能夠接收到,後來發現,只要將複雜物件轉為json資料,jsp就能夠直接接收

一、將list轉為JSON資料

controller程式碼

後端將list集合通過json工具類轉為json型別的陣列

try{
	List<SportBO> sportList = this.sportClient.getLevelOneSport();
	model.addAttribute("allSport",sportList);
	JsonArray JsonSport = JSONArray(JSON.toJSONString(sportList));
	model.addAttribute("JsonSport",JsonSport);
	return
"athlete/athlete-list"; }catch(Exception e){ return null; }

JSP 程式碼

直接通過el表示式獲取

var data = ${JsonSport};

通過AJAX請求

Controller程式碼

@requestMapping("/queryCountry")
public void queryCountry(HttpServletResponse response) throws Exception{
	try{
		response.setContentType("application/json;charset=UTF-8"
); List<CountryBO> countryList = this.countryClient.findAll(); JSONObject json = new JSONObject(); json.put("countryList",countryList); response.getWriter.write(json.toString()); }catch(Exception e){ e.printStackTrace(); } }

JSP程式碼

<script type ="text/javascript">
var countryList //全域性變數 方便呼叫
window.onload=fuction(){
	//ajax方法
	$.ajax({
		type:"GET",//請求方式
		url:"/athlete/queryCountry",//請求url
		dataType:"json",//返回資料型別
		async:false,//設定為同步請求
		cache:false,//設定不從瀏覽器快取載入資訊
		success:fuction(data){
			countryList = data.countryList;
		}
	})
}
</script>

話外:也可以通過將資料賦值給hidden 隱藏域 再在js中獲取