如何使用javascript

时间:2016-07-24 19:57:25

标签: javascript java json jsp spring-mvc

我在我的控制器中传递如下所示的模型(下面只是一个例子,因为我无法粘贴我的实际代码)。

Map<String, MyObject> map = new HashMap<>();
List<String> graphLabel = Arrays.asList("EARTH","MOON");
String data_1 = "[[1,70],[2,104],[3,120],[4,93]]";
String data_2 = "[[1,57],[2,19],[3,87],[4,128]]";

map.put("metaData_1", new MyObject("Day", graphData, data_1));
map.put("metaData_2", new MyObject("Day", graphData, data_1));

在我的控制器中,我将上面生成的地图添加到ViewAndModel,如下所示

ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("dataModel", convertToJSON(map));
modelAndView.setViewName("My_JSP_PAGE.jsp");
return modelAndView;

现在在我的JSP中使用javascript我需要访问这个值。我如何访问我在ModelAndView中添加的地图(迭代键并检索MyObjects的属性

我尝试了以下方法,但没有运气......我甚至无法获得js警报的值。

  1. 而不是将地图添加到ModelAndView中添加JSON字符串,
  2. private String convertToJSON(Map map) {
        ObjectMapper mapper = new ObjectMapper();
        String jsonString = null;
        try {
            jsonString = mapper.writeValueAsString(map);
        } catch (JsonProcessingException e) {
        }
        return jsonString;
    }
    
    1. 而不是将地图添加到ModelAndView中添加JSON对象,
    2. private JSONObject convertToJSON(Map map) {
          JSONObject jsonObject = new JSONObject();
          jsonObject.putAll(map);
          return jsonObject; 
      }
      

      下面是我尝试获取这些值的示例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>
      

0 个答案:

没有答案