SSM框架下JSP頁面javaScript獲取後端Controller層SpringMVC-Model的值
阿新 • • 發佈:2018-12-28
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中獲取