簡體   English   中英

打印從Spring MVC Controller發送的String數組,在javascript中僅顯示“ toJSON”

[英]Printing an array of String sent from Spring MVC Controller shows only “toJSON” in javascript

我有一個從控制器傳遞到JSP頁面的字符串(部門名稱)列表。 我需要獲取每個人的姓名並將其用作地圖的關鍵字(地圖值將是該部門的雇員列表)。 但是,當我為每個部門名稱發出警報時,我得到了一個字符串“ toJSON”。 如何獲得可讀字符串中的每個名稱? 一些部門名稱包含特殊字符,例如撇號,斜杠。 非常感謝!

控制器:

@RequestMapping(value = "/getDepartment", method = { RequestMethod.POST, RequestMethod.GET })
 public ModelAndView getDepartment()
 {
     ModelAndView mv = new ModelAndView();
     mv.addObject("depNameList", depNameList); // depNameList is a type of List<String> 
     mv.setViewName("displayDepartment");
     return mv;
  }

JSP:

 $(document).ready(function() 
 {
    var depArr = "${depNameList}";    
    alert(depArr); // this printed a list of department names
    for ( var i in depArr)
    { 
         alert("i=" + i); // this printed "i=toJSON"
         alert("i=" + JSON.stringfy(i)); // this didn't get invoked.
    }
  });

這是我用Remdo的建議解決此問題的方式(謝謝!)。 在控制器方面,我沒有改變。

  var depArr =[]
 <c:forEach items="${depNameList}" var="depName">
      depArr.push("${depName}");
  </c:forEach>

alert(“ i =” + JSON.stringfy(i)); //這沒有被調用。

因為i不是JSON對象, depArr具有字符串而不是字符串數組,

 mv.addObject("depNameList", depNameList); // depNameList is a type of List<String> 

如果在控制台中打印depNameList ,則輸出將如下所示:

[a,b,c,d] //這是無效的JSON,缺少qoutes( " OR '

另外,如果使用上述語句運行,編譯器將拋出類似以下的錯誤:

Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', ']'

解決方案

更改:

var depArr = "${depNameList}";

至:

var depArr =[]
<c:forEach items="${depNameList}" var="depName">
     depArr.push(\"${depName}\");
</c:forEach>

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM