在js中嵌套java代码

时间:2022-09-20 21:35:33

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);