我是控制器类,我初始化方法,我将字符串列表添加到模型和视图。
@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方法的示例方法。
非常感谢!
答案 0 :(得分:2)
为什么引用您的${myList}
EL表达式?摆脱单引号
var myList = [];
<c:forEach var="entry" items="${myList}">
myList.push("${entry}");
</c:forEach>
我希望在此按钮上单击以触发事件并将myList对象发回 到控制器
Java表单中不再存在myList
。它以myList
var对象中的序列化格式存在。您需要将其序列化为Web应用程序可以理解的格式:表单对象,逗号分隔列表,JSON,XML等。