Spring MVC 将对象传递给 JSP 并返回

Spring MVC passing object to JSP and back

本文关键字:JSP 返回 MVC 对象 Spring      更新时间:2023-09-26

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

@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端的示例方法和控制器的方法。

多谢!

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

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

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

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