2013-10-06 42 views
1

我已经在控制器类中初始化方法,我将字符串列表添加到模型和视图中。Spring MVC将对象传递给JSP并返回

@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方法的示例方法。

非常感谢!

回答

2

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

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

我想在此按钮上点击火灾的事件,并发送myList中对象返回 到控制器

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

+0

非常感谢。请你指点一下,或者提供一个例子来说明如何在JS端操纵'myList'。以及如何将更新的对象发送回控制器。谢谢! –

相关问题