我有搜索航班页面,当搜索完成后我发送航班列表到jsp页面,
flights = getAllFlight();
ModelAndView mav = new ModelAndView("search_result");
mav.addObject("flights", flights);
return mav;这里是显示航班结果的jsp页面。
<c:forEach var="flight" items="${flights}">
<!-- display a little information, not all flight information -->
....
<button type="submit" class="btn btn-success">Add</button>
</c:forEach>在每个航班行中,都有添加按钮将航班信息添加到数据库中,单击添加按钮时如何发回航班对象?
发布于 2014-02-24 17:22:20
应该有一些唯一的键来唯一地标识每个航班,它可以是一个属性,比如航班id或某些属性的组合。
如果你想通过表单提交来发送这个值,你可以保留一个隐藏的带有航班id值的输入,一旦你提交了表单,你就会在控制器中得到它。
如果您想使用ajax发送此消息,可以将此航班id作为数据属性添加到列表中,如下所示
单击add按钮,使用jquery data函数获取该值,然后进行ajax调用。
发布于 2014-02-24 21:57:21
解决了这个问题,通过创建类控制器的ArrayList属性,当按钮订阅点击时,将列表的索引返回给控制器
<c:forEach var="flight" items="${flights}" varStatus="theCount"> ..... <td> <form:form action="${pageContext.request.contextPath}/flight/subcribe.html" method="POST">
`<button class="btn btn-success" value="${theCount.index}" name="index">Subcribe</button> </form:form> </td> </c:forEach>`类控制器处理搜索航班帖子和订阅航班帖子,与ArrayList相同的类
@Controller
@RequestMapping(value = "/flight")
public class FlightController {
private ArrayList<Flight> flights;
@RequestMapping(value = { "/search" }, method = RequestMethod.POST)
public ModelAndView getFlightFromSearch(@ModelAttribute Parameters param
// ,Map<String, Object> model
) throws IOException, Exception {
// send arraylist of light to jsp
}
@RequestMapping(value = "/subcribe", method = RequestMethod.POST)
public ModelAndView subcribeFlight(@RequestParam("index") int index, @ModelAttribute Parameters param) throws ParseException
{
Flight flight = flights.get(i);
.......
}
}https://stackoverflow.com/questions/21937331
复制相似问题