0
我有一個.jsp
頁面,該頁面使用我的"menuModel"
生成,現在在可視化該頁面後,用戶插入他/她的名字並單擊Confirm My Order
按鈕。用Spring MVC中的另一個模型的數據填充模型
通過點擊此按鈕我想這個menuModel
的數據複製到一個名爲「ordersModel」另一種模式。由於這個ordersModel
沒有實例化的事實,我不知道如何將menuModel
的數據複製到ordersModel
。
<form:form id="myOrderMenuId" action="${pageContext.request.contextPath}/OrderSent" method="post" commandName="ordersModel" >
<c:forEach items="#{menuModel.foodList}" var="foodModel" varStatus="status">
<c:if test="${foodModel.quantity != 0}">
<!-- <form:hidden value='${foodModel.foodName}' path='orders[${status.index}].foodName'/>
<form:hidden value='${foodModel.quantity}' path='orders[${status.index}].quantity'/> -->
<div>
<table class="itemList">
<tr>
<td style="width: 170px">
<span id="foodNameId${foodModel.foodId}"><c:out value="${foodModel.foodName}"/></span>
</td>
<td>
<span id="quantityId${foodModel.foodId}" style="margin-left: 110px;"><c:out value="${foodModel.quantity}"/></span>
</td>
<td>
<span id="priceId${foodModel.foodId}" style="margin-left: 110px;"><c:out value="${foodModel.price}"/></span>
<span> €</span>
</td>
<td>
<span class="eachPrice" id="totalPriceId${foodModel.foodId}" style="margin-left: 110px;"><c:out value="${foodModel.totalPrice}"/></span>
<span> €</span>
</td>
</tr>
</table>
</div>
</c:if>
</c:forEach>
<span class="itemList" style="color: #80FF00; margin-left: -300px">Total:</span>
<span id="totalPayment" class="itemList" style="color: #80FF00; margin-left: 5px"></span>
<span class="itemList" style="color: #80FF00;"> €</span><br/>
<div class="itemList" style="margin-left:-1130px">Your Name: <input path="ownerName" name="orderName" class="myInbox" id="orderName"/></div>
<button id="viewMyOrder" class="greyButton" style="position:relative; left: -530px">Confirm My Order</button>
</form:form>
這是我OrdersModel
:
public class OrdersModel {
private String ownerName;
private List<Order> orders;
//getters and setters
}
怎麼可能將數據複製到ordersModel
,正如我在代碼註釋。
UPDATE
我的控制器看起來是這樣的:
@RequestMapping(value = "/myOrder", method = RequestMethod.POST)
public String viewMyOrder(Model model,
@ModelAttribute("menuModel")MenuModel menuModel) {
logger.info("You are in view my order page.");
List<FoodModel> foodModelList = new ArrayList<FoodModel>();
for (FoodModel foodModel : menuModel.getFoodList()) {
FoodModel foodModelNew = new FoodModel();
if (foodModel.getQuantity()!=0){
foodModelNew.setFoodId(foodModel.getFoodId());
foodModelNew.setFoodName(foodModel.getFoodName());
foodModelNew.setQuantity(foodModel.getQuantity());
foodModelNew.setPrice(foodModel.getPrice());
foodModelNew.setTotalPrice(foodModel.getQuantity() * foodModel.getPrice());
}
foodModelList.add(foodModelNew);
}
menuModel.setFoodList(foodModelList);
return "myOrder";
}
@RequestMapping(value = "/OrderSent", method = RequestMethod.POST)
public String orderSent(@ModelAttribute("ordersModel")OrdersModel ordersModel,
@RequestParam("orderName") String owner, Model model) {
logger.debug("Your order has been received");
model.addAttribute("owner", owner);
return "orderSent";
}
}
感謝您的回覆,我還添加了我的控制器,以更具體,能否請你看看有什麼錯我的代碼?/myOrder是我放置屏幕截圖的頁面。 我只是想將foodName和它的數量複製到ordersModel。 – reshad
如果我理解的很好,你想把'MenuModel'複製到'OrderModel.orders'。最好的地方是'Controller.viewMyOrder'。這樣'orderSent()'將會預先填充完整的對象。你也可以把'MenuModel'放在會話中,並在'orderSent()'中手動複製。 – codependent
但是,你能解釋一下如何將它放在Controller.viewMyOrder中?再次感謝 – reshad