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