我有搜索航班页面,完成搜索后我发送航班列表到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>
在每个航班行中,有“添加”按钮将航班信息添加到数据库,如何在“添加”按钮单击时发回航班对象?
答案 0 :(得分:0)
应该有一些唯一的钥匙来唯一地识别每个航班,它可以是航班ID或某些属性的组合等属性。
如果您想使用表单子目录发送此值,您可以使用值航班ID保留隐藏的输入,一旦您提交表单,您将在控制器中获取它。
如果你想用ajax发送它,你可以在列表中添加这个航班ID作为这样的数据属性
点击添加按钮,使用jquery数据函数获取此值并进行ajax调用。
答案 1 :(得分:0)
我解决了这个问题, 通过创建类控制器的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);
.......
}
}