我有一个显示我所有产品的jsp页面,在页面的左侧有各种选项可以缩小选择范围,类似于许多在线商店。例如,用户希望将结果限制为类似于百思买的价格范围,我使用复选框来表示用户想要显示的条件(它将默认显示在第一个视图中以显示所有产品)。
在我的jsp中,我有类似的东西
<label class="checkbox"><input type="checkbox" name="checkbox"><i></i>$0 - $20</label>
<label class="checkbox"><input type="checkbox" name="checkbox"><i></i>$20 - $30</label>
<label class="checkbox"><input type="checkbox" name="checkbox"><i></i>$30 - $40</label>
<label class="checkbox"><input type="checkbox" name="checkbox"><i></i>$50+</label>
这就是我对我的java控制器的作用
@RequestMapping(value = "/btwn", method = RequestMethod.GET)
public ModelAndView betweenCriteria(@RequestParam("min") double min, @RequestParam("max") double max){
List<Product> productsBtwn = productService.findProductsBetween(min, max);
return null;
}
当用户检查任何一个复选框时,我希望页面刷新时只显示所选标准,那么如何将值(即最小值和最大值)返回到我的java控制器,这样我就可以运行一个查询将仅包含所选价格范围的集合返回给用户。
我能接触到的最接近的事情是在我的java控制器上使用@RequestParam注释,但这些值在我的jsp中的位置以及如何调用端点(/ btwn)?
另外我想避免使用javascript / jquery,因为我没有太多时间,而且这些技术的学习曲线在这一点似乎太陡了,我对页面刷新很好,将来会慢慢迁移到ajax
谢谢
答案 0 :(得分:0)
这适用于您的控制器,只需使用@PathVariable
see docs
@RequestMapping(value="/btwn/{min}/{max}", method = RequestMethod.GET)
public String btwn(@PathVariable() int min,@PathVariable() int max){
// IF max == 0 ? true:false;
max = max == 0 ? 100:max;
List<Product> productsBtwn = productService.findProductsBetween(min, max);
return "jspFile";
}
并且对于jsp,因为您的方法类型是GET,我更喜欢使用<a href=""></a>
<label class="checkbox"><a href="/btwn/0/20">$0 - $20</a></label>
<label class="checkbox"><a href="/btwn/21/30">$21 - $30</a></label>
<label class="checkbox"><a href="/btwn/31/40">$31 - $40</a></label>
<label class="checkbox"><a href="/btwn/41/50">$41 - $50</a></label>
<label class="checkbox"><a href="/btwn/51/0">$51+</a></label>