如何使用javascript在JSP中检索从控制器传递的hashmap模型

如何使用javascript在JSP中检索从控制器传递的hashmap模型,javascript,java,json,jsp,spring-mvc,Javascript,Java,Json,Jsp,Spring Mvc,我在我的控制器中传递下面这样的模型(下面只是一个示例,因为我不能粘贴我的实际代码) 现在,在使用javascript的JSP中,我需要访问这些值。我需要如何访问我在ModelAndView中添加的映射(遍历键并检索MyObject的属性) 我试过下面的方法,但运气不好……我甚至无法在js alert上获得值 而不是将映射添加到ModelAndView添加JSON字符串中 而不是将映射添加到ModelAndView添加JSON对象中 下面是我试图获取这些值的示例jsp <%@ taglib

我在我的控制器中传递下面这样的模型(下面只是一个示例,因为我不能粘贴我的实际代码)

现在,在使用javascript的JSP中,我需要访问这些值。我需要如何访问我在ModelAndView中添加的映射(遍历键并检索MyObject的属性)

我试过下面的方法,但运气不好……我甚至无法在js alert上获得值

  • 而不是将映射添加到ModelAndView添加JSON字符串中
  • 而不是将映射添加到ModelAndView添加JSON对象中
  • 下面是我试图获取这些值的示例jsp

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script type="text/javascript">
    google.charts.setOnLoadCallback(retrieveData());
    function retrieveData() {
        alert("${dataModel}");
    }
    </script>
    
    
    setOnLoadCallback(retrieveData());
    函数retrieveData(){
    警报(“${dataModel}”);
    }
    


    在您的问题中,
    alert
    以两种方式打印了什么?
    dataModel
    在哪里?哪里使用了
    convertToJSON()
    ?地图在哪里运输?在哪个加载之后应该调用retrieveData()?Thnks JPG和Holger进行响应。问题出在哪里了。从警报(“${dataModel}”)更改;发出警报(${dataModel});解决了这个问题@Holger-convertToJSON()用于此处的modelAndView.addObject(“数据模型”,convertToJSON(映射));,我想补充一下。现在我已经编辑了您问题中的两种方式的
    alert
    打印内容:
    dataModel
    在哪里?哪里使用了
    convertToJSON()
    ?地图在哪里运输?在哪个加载之后应该调用retrieveData()?Thnks JPG和Holger进行响应。问题出在哪里了。从警报(“${dataModel}”)更改;发出警报(${dataModel});解决了这个问题@Holger-convertToJSON()用于此处的modelAndView.addObject(“数据模型”,convertToJSON(映射));,我想补充一下。现在我已经编辑了
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("dataModel", convertToJSON(map));
    modelAndView.setViewName("My_JSP_PAGE.jsp");
    return modelAndView;
    
    private String convertToJSON(Map map) {
        ObjectMapper mapper = new ObjectMapper();
        String jsonString = null;
        try {
            jsonString = mapper.writeValueAsString(map);
        } catch (JsonProcessingException e) {
        }
        return jsonString;
    }
    
    private JSONObject convertToJSON(Map map) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.putAll(map);
        return jsonObject; 
    }
    
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script type="text/javascript">
    google.charts.setOnLoadCallback(retrieveData());
    function retrieveData() {
        alert("${dataModel}");
    }
    </script>