//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");
------解决方案--------------------
你只new一下。。并没有add内容,当然是null。
------解决方案--------------------
List<RouteEntry>?trunks=new?ArrayList<RouteEntry>();
?
??request.setAttribute("trunks",?trunks);
trunks 没数据吧
------解决方案--------------------
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>
------解决方案--------------------
刚网上查了下 原来是request作用域的问题 后来换成 session就可以取到了
但是session取到的是原来的数据 怎么取经过jsp里面修改后的数据呢?
如果通过request去updateRoute的话, 这还在它的作用域内, 是不需要使用session的, 在jsp中修改了List中的数据, 但是你没有去更行session, 当然取到的还是之前的数据。
那请问下怎么去更新修改后的session
1.获取session;
2.清除当前session;
3.添加session(再次把修改后的值保存到session中)