日期:2014-05-17  浏览次数:20704 次

spring mvc怎么获取jsp上面的List

//action
@RequestMapping("showEdit")
public String showEdit(HttpServletRequest request){

   List<RouteEntry> trunks=new ArrayList<RouteEntry>();

  request.setAttribute("trunks", trunks);


 return "/jsp/opmgr/operate/route/editRoute";


}
//jsp
 <c:forEach var="item" items="${trunks}" varStatus="n">
        //对数据进行修改
 </c:forEach>


//action
@RequestMapping("updateRoute")
public String updateRoute(HttpServletRequest request){

   //这边要怎么获取从JSP经过修改的 List?
 }




struts知道怎么获取 就是set get 

spring mvc获取单个属性是 request.getParameter 但是怎么获取LIst

------解决方案--------------------
request.setAttribute("list",list);
后台接受
List list=request.getAttribute("list");
------解决方案--------------------
引用:
不行呀 得到的还是Null

你只new一下。。并没有add内容,当然是null。
------解决方案--------------------
List<RouteEntry>?trunks=new?ArrayList<RouteEntry>();
?
??request.setAttribute("trunks",?trunks);


trunks  没数据吧
------解决方案--------------------
引用:
Quote: 引用:

不行呀 得到的还是Null

你只new一下。。并没有add内容,当然是null。


new了, 对象就有了。 出现null说明连对象都没有, 如果在add的话, 就抛nullpointexception
------解决方案--------------------
引用:
刚网上查了下 原来是request作用域的问题  后来换成 session就可以取到了 
但是session取到的是原来的数据  怎么取经过jsp里面修改后的数据呢?


如果通过request去updateRoute的话, 这还在它的作用域内, 是不需要使用session的, 在jsp中修改了List中的数据, 但是你没有去更行session, 当然取到的还是之前的数据。
------解决方案--------------------
还是用原始的方法吧
<c:forEach var="item" items="${trunks}" varStatus="n">         
//这里的应该是用<input type="test"/>这样的形式修改数据吧,给每个文本框一个name,在action中通过name取值,在重组成list,试下可行否  
</c:forEach>

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

刚网上查了下 原来是request作用域的问题  后来换成 session就可以取到了 
但是session取到的是原来的数据  怎么取经过jsp里面修改后的数据呢?


如果通过request去updateRoute的话, 这还在它的作用域内, 是不需要使用session的, 在jsp中修改了List中的数据, 但是你没有去更行session, 当然取到的还是之前的数据。

那请问下怎么去更新修改后的session


1.获取session;
2.清除当前session;
3.添加session(再次把修改后的值保存到session中)