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中获取

猜你喜欢

转载自blog.csdn.net/weixin_43740223/article/details/85060040
今日推荐