2016-11-12 3 views
0

JavaScriptを使用してオンラインショッピングアプリケーションを作成しようとしていますが、アイテムの作成と作成されたすべてのオーダーの作成と表示の両方が可能です。オンラインストアJavaScriptを使用しています

IndexPage.jsp 

<html> 
<head> 
    <title>Order Item Editing</title> 
</head> 
<body> 
<h1>Welcome to the Online Supermarket</h1> 
<h2>Please select one of the following options</h2> 
<div> 
<a href="/items/" class="btn btn-default">Items</a> 
<a href="/orders/" class="btn btn-default">Orders</a> 
</div> 
</body> 
</html> 



itemHomepage.jsp 

<html> 
<head> 
    <title>Summary of Items</title> 
</head> 
<body> 
<h2>Item Information</h2> 
<section> 
<a href="/item/itemDetails" class="btn btn-default">Add a new item</a> 
<a href="/" class="btn btn-default">Return to the home page</a> 
<p/> 
</section> 
<section> 
<table class="TFtable"> 
<tr> 
    <td><h3>Item Id</h3></td> 
    <td><h3>Name</h3></td> 
    <td><h3>Description of Item </h3></td> 
    <td><h3>Cost</h3></td> 
    <td><h3></h3></td> 
    <td><h3></h3></td> 
</tr> 
<c:forEach items="${itemList}" var="item"> 
<tr> 
    <td><c:out value="${item.getItemId()}"/></td> 
<td><c:out value="${item.getItemName()}"/></td> 
<td><c:out value="${item.getItemDescription()}"/></td> 
<td><c:out value="${item.getItemCost()}"/></td> 
<td><a href="/item/itemDetail?itemId=${item.getItemId()}">Edit Item</a></td> 
<td><a href="/item/delete?itemId=${item.getItemId()}">Delete Item</a></td> 
</tr> 
</c:forEach> 
</table> 
</section> 
</body> 
</html> 

itemDetail.jsp

OrderHomepage.jsp

<html> 
<head> 
    <title>Summary of Orders</title> 
</head> 
<body> 
<h2>Summary of Orders</h2> 
<section> 
<a href="/order/detailsOfOrders" class="btn btn-default">Add a new order</a> 
<a href="/" class="btn btn-default">Return to the Homepage</a> 
<p/> 
</section> 
<section> 
<table class="TFtable"> 
<tr> 
    <td><h3>Order Id</h3></td> 
    <td><h3>Total Cost</h3></td> 
    <td><h3></h3></td> 
    <td><h3></h3></td> 
</tr> 
<c:forEach items="${listOfOrders}" var="order"> 
<tr> 
    <td><c:out value="${order.getOrderId()}"/></td> 
    <td><c:out value="${order.getOrderCost()}"/></td> 
    <td><a href="/order/detailsOfOrders?orderId=${order.getOrderId()}">Edit</a></td> 
    <td><a href="/order/delete?orderId=${order.getOrderId()}">Delete</a></td> 
</tr> 
</c:forEach> 
</table> 
</section> 
</body> 
</html> 

detailsOfOrders.jsp

<html> 
<head> 
    <title>Order Information</title> 
</head> 
<body> 
<h2>Order Information</h2> 
<table> 
<form:form method="POST" commandName="order" action="/order/addOrder"> 
    <tr> 
    <td> <form:label path="id">ID: </form:label> </td> 
    <td> <form:input path="id" readonly="true"/> </td> 
    </tr> 
</table> 

</form:form> 
<section> 
<a href="/itemDetail" class="btn btn-default">Add new item</a> 
<a href="/order/" class="btn btn-default">Show all orders</a> 
<p/> 
</section> 
<table class="TFtable"> 
<tr> 
    <td><h3>Item Id</h3></td> 
    <td><h3>Name of Item</h3></td> 
    <td><h3>Price</h3></td> 
    <td><h3>Amount</h3></td> 
    <td><h3>Total Cost</h3></td> 
    <td><h3></h3></td> 
    <td><h3></h3></td> 
</tr> 
</table> 
</body> 
</html> 

私がこれまでに以下のコードを書かれています

示すように、私は、コントローラを作成しました:

package eMarket.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RequestParam; 

import eMarket.EMarketApp; 
import eMarket.domain.Product; 
import eMarket.domain.Order; 

@Controller 
@RequestMapping("/order") 
public class OrderController { 

    @RequestMapping("/") 
    public String index(Model model) { 
     model.addAttribute("listOfOrders", EMarketApp.getShop().getlistOfOrders()); 
     return "form/orderHomepage"; 
    } 

    @RequestMapping(value = "/orderDetail", method = RequestMethod.GET) 
    public String orderDetail(@ModelAttribute("order") Order order, @RequestParam(value="orderId", required=false, defaultValue="-1") int orderId) { 
     if (orderId >= 0) { 
     // modify 
     Order o2 = EMarketApp.getShop().getlistOfOrders().stream().filter(o -> (((Order) o).getId() == orderId)).findAny().get(); 
     order.setId(o2.getId()); 
     } else { 
     // add 
     order.setId(); 
     } 
     return "form/orderDetail"; 
    } 

ItemController.java

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RequestParam; 

import eMarket.EMarketApp; 
import eMarket.domain.Product; 
import eMarket.domain.Order; 
import eMarket.domain.Item; 

@Controller 
@RequestMapping("/item") 
public class ItemController { 

    @RequestMapping("/") 
    public String index(Model model) { 
     model.addAttribute("listOfItems", EMarketApp.getShop().getListOfProducts()); 
     return "form/productHomepage"; 
    } 

    @RequestMapping(value = "/add", method = RequestMethod.POST) 
    public String productMaster(@ModelAttribute("product") Product product, Model model) { 
     EMarketApp.getShop().getListOfProducts().removeIf(p -> (p.getProductId() == product.getProductId())); 
     EMarketApp.getShop().getListOfProducts().add(product); 

     model.addAttribute("itemList", EMarketApp.getShop().getListOfProducts()); 
     return "item/itemDetail"; 

を私が新しい順にアイテムを試み、何らかの理由については、私は再び向けられていませんよitemDetailページに移動します。私はどこに間違っているのかアドバイスできますか? itemsHomePage.jspで

<a href="/item/itemDetails" class="btn btn-default">Add a new item</a> 

によって示されるように、私はあなたのItemControllerのクラスレベル@RequestMappingであると仮定

+2

このJavaScriptを、 "Javaのサーバーページ" のためではない略jsp' Javascriptを –

+0

'とは関係ありません。 – Pointy

答えて

0

は@RequestMapping様/アイテム(「/アイテム」)の値を有します。

  1. 変更

    <a href="/itemDetail" class="btn btn-default">Add new item</a> 
    

    から(/アイテムで開始する)detailsOfOrders.jspに '新しい項目のURLを追加':

    は、私はあなたが次の操作を行い提案します

    <a href="/item/itemDetail" class="btn btn-default">Add new item</a> 
    
  2. 問題が解決しない場合は、c:url以下のようなhrefの値などの値:

    <a href="<c:url value = '/item/itemDetail' />" class="btn btn-default">Add new item</a> 
    
+0

問題はまだ発生します:おそらく問題はItemControllerのどこかにありますか? (上記のコード編集を参照してください)。 – NoahSM1993

+0

アイテムコントローラーのスニペットを共有してもよろしいですか? –

+0

私は上記の質問の最後にそれを含めました。 – NoahSM1993

関連する問題