1.
在项目开发中,需要把后台返回的list展示并把选中的某个对象放到form表单中提交到后台
2.
首先为选择按钮添加click事件,将选中的对象作为参数放入
3.
发现参数传递的只是对象的地址值,这是因为使用EL表达式取出的就是字符串,如果没为对象重写tostring方法,就会默认返回地址值,所以
4.
然后再点击按钮发现失效了,在浏览器中检查页面元素,发现函数中确实有对象的json字符串,猜测可能时字符串太长click不支持,所以
5.
这时发现只传过来一个”{” ,页面检查发现bookinfo中有对象完整的json字符串,但是由于bookInfo使用” “导致只截取了{,
所以要改为’ ‘
<a bookinfo='${flight.leastClassInfo}' flightinfo='${flight}' class="book-flight-button"
onclick="book(this)" href="javascript:;">预定</a>
<form action="/jdtravel/flight/list" method="post" id="flightForm">
<%--已选舱位--%>
<input name="flightBookReq" value="" type="hidden">
<%--航班信息--%>
<input name="flightRespBean" value="" type="hidden">
</form>
6.
后台接收
FlightListResp.FlightRespBean.ClassInfoListBean classInfoListBean = (FlightListResp.FlightRespBean.ClassInfoListBean)
JSON.parseObject(flightListReq.getFlightBookReq(),FlightListResp.FlightRespBean.ClassInfoListBean.class);
7.
传递多个对象相同
8.
传递多个对象,需要存入session中
request.getSession().setAttribute("booklist",flightListReq.getFlightBookReqList());
List<FlightBookReq> booklist = (List<FlightBookReq>)request.getSession().getAttribute("booklist");
最后 将list数据提交后一定记得清空session