価格や名前、昇順または降順に基づいて商品のリストを注文する必要があります。 バックエンドが完了しました。どのオプションがドロップダウンリストから選択されたかを示すパラメータを送信するだけです。JSPでアイテムを含むページを注文する方法
<!-- Dropdown for ORDER -->
<label for="order" class="control-label">Order by</label>
<select class="form-control" name="order" id="order" onchange="...">
<option value="priceAsc" selected>Price: lowest first</option>
<option value="priceDesc">Price: highest first</option>
<option value="nameAsc">A - Z</option>
<option value="nameDesc">Z - A</option>
</select>
onchange
では、私はonchange="location=location + '/order/'+ this.options[this.selectedIndex].value;"
のように異なるものを試してみたし、コントローラに私が/order/{orderBy}"
リンクをマッピングされました。 この方法の問題点は、私は1つのアイテムをクリックすると、リンクが/products/order/option_here
になることだった、と私はもう一度クリックしたいとき、私も試してみました/products/order/option_here/order/option_here
、/order/option_here
は結果として、リンクの最後に再び追加されますRequestMethod.GET
でorder
の値を取得するが、うまくいきませんでした私は、並べ替えしようとしているページは/products
と呼ばれる
(GET
メソッドの後にページの構築物が完成しているので、私は信じている)ので、私はそれを並べ替えることができますかユーザーが自分のオプションを選択したら、
これは、我々はjQueryのを使用することはできません@Controller
@RequestMapping(value = "/order/{orderBy}, method = RequestMethod.GET)
public ModelAndView sortPageBy(@PathVariable String orderBy){
ModelAndView modelAndView = new ModelAndView("viewProducts");
List<Product> sortedProducts = productService.orderProducts(orderBy);
modelAndView.addObject("products", sortedProducts);
return modelAndView;
}
にマッピングされた私の方法です。
でのonSubmit呼び出すための
!!最も簡単なアプローチは、クライアント側でパラメータorederByを取得し、コントローラにAjax経由で送信し、製品のリストを取得することです!私はあなたがそこで複雑なことをしているのを見ている。 – PacMan
私は規則を作っていません...それだけに従ってください:\ – SnuKies
どこでそれを並べ替えるのですか?コントローラーで! –