1

我有控制器类,我在其中初始化方法,在其中将字符串列表添加到模型和视图。

@RequestMapping(value = "/my-site", method = RequestMethod.GET)
public ModelAndView doStuff(HttpServletRequest request){

    ModelAndView modelAndView = new ModelAndView("do-stuff");
        ...

    List<String> list = Arrays.asList("abc", "cba");
    modelAndView.addObject("myList", list);
    return modelAndView;
}

问题 1:如何在 jsp 文件中访问我的列表并稍后在 java 脚本中使用它?我正在尝试类似的东西:

var myList = [];
<c:forEach var="entry" items="'${myList}'">
        myList.push("${entry}");
    </c:forEach>

但由于某种原因,在 myList 对象内部,而不是两个元素:“abc”和“cba”,我有“[abc”、“cba]”,其中包含额外的符号。为什么?我做错了什么,我该如何解决这个问题?

问题2:我有输入按钮。

<input type="button" id="executeBtn" name="executeBtn" value="Execute">

我想在此按钮上单击触发事件并将myList对象发送回控制器。您能否提供JS端的示例方法和Controller的方法。

非常感谢!

4

1 回答 1

2

为什么${myList}引用您的 EL 表达式?摆脱单引号

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

我想在此按钮上单击触发事件并将 myList 对象发送回控制器

myList不再以 Java 形式存在。它以序列化格式存在于您的myListvar 对象中。您需要将其序列化为您的 Web 应用程序可以理解的格式:表单对象、逗号分隔列表、JSON、XML 等。

于 2013-10-06T17:18:17.377 回答