0
私は"menuModel"
を使って生成された.jsp
ページを持っています。このページを視覚化した後、ユーザはConfirm My Order
ボタンに名前とクリックを挿入します。私は「ordersModel」という名前の別のモデルにこのmenuModel
のデータをコピーするには、このボタンをクリックするとSpring MVCの別のモデルのデータでモデルを記入
。この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