在js中嵌套java代码
jsp中有时候在js中操作某些java后台传递过来的数据逻辑比较复杂,比如list内容的遍历,可以直接在页面上添加java脚本来执行内容,代码如下:
//在js中插入java代码操作 <% //取出java后台设置好的userList List<Map<String,String>> userList = (List<Map<String,String>>)request.getAttribute("userList"); //如果userList的值为空则实例化 if(userList==null){ userList = new ArrayList<Map<String,String>>(); } %> //如果userList内有数据 if (<%=userList.size()%>>0) { <% //遍历list中的内容 for (Map<String,String> user : userList) { String userId = user.get("userId"); String userName = user.get("userName"); %> //在java遍历中调用js方法,传参 toAdd("<%=userId%>","<%=userName%>"); <% } %> //如果userList中无知就要把java后台设置好的两个参数拿出来做参数 }else{ //销售人员ID var userId = "${userId}"; //销售人员姓名 var userName = "${userName}"; toAdd(userId,userName); }
这样的操作省去了js页面接收java数据的内容,java代码如下:
List<Map<String, String>> mapList = new ArrayList<Map<String,String>>(); Map<String, String> map = new HashMap<String,String>(); map.put("userId", "1"); map.put("userName", "水狼一族"); mapList.add(map); req.setAttribute("userList", mapList);