使用spring thymeleaf MVC进行表格搜索?

时间:2017-06-12 09:18:58

标签: mysql forms spring-mvc search thymeleaf

在我的网站中,我有一个从数据库中提取的产品列表,结果会聚合成一个带有select / option的简单列表。现在我想用一个带有单词autocomplete的多字搜索表单来改变它。

这是我的选择/选项列表:

$("#Product").change(function(){
	var webProductId = $(this).find(':selected').attr('data-webProductId'); 
	var requestData = { webProductId: webProductId };
	yada.ajax([[@{/product/list}]], requestData, function(responseText, responseHtml) {
	$('div.sinVotoInner').replaceWith(responseHtml);
	yada.initHandlersOn(responseHtml);
});
<select id="wsProduct">
  <option value="Products" id="Product" selected>Product</option>
  <option th:each="webProduct : ${webProducts}"
	th:attr="data-webProductId=${webProduct.id}"
	th:text="|${webProduct.name} ${webProduct.description}|">Product 1 Description 1</option>
			</select>

这是我的家庭控制器:

@RequestMapping("/")
	public String home(Model model) {
		
		List<WebProduct> webProducts = webProductRepository.findByEnabledTrueOrderByNameAsc();
		model.addAttribute("webProducts", webProducts);

		return "/home";
	}

这是我的存储库:

List<WebLocation> findByEnabledTrueOrderByNameAsc();

	/**
	 * @param productId
	 * @return 
	 */
	@Query(value="select * from WebProduct wp where wp.product_id = :productId", nativeQuery = true)
	WebProduct findByProductId(@Param("productId") long productId);

如何更改此代码以包含有效的搜索表单?搜索必须适用于您输入的任何字词,搜索建议(例如Google)会显示在搜索表单中。

1 个答案:

答案 0 :(得分:0)

解决方案是:

List<WebProduct> webProducts = webProductRepository.findByWord("%"+word+"%");

查询:

@Query(value="select * from WebProduct wp where wp.name like :word or wp.description like :word", nativeQuery = true)
	List<WebProduct> findByWord(@Param("word") String word);