如何显示搜索结果MVC

时间:2021-02-04 11:52:11

标签: java html sql

我是初学者,遇到了一个我无法理解的异常。从我的角度来看,一切似乎都很好,但是当我在我的 MVC WebApp 中执行搜索时,我总是得到同样的空响应。

看看我的代码。任何帮助将不胜感激。

我的控制器

@Controller
public class ControllerACP {

@RequestMapping("/search")
    public String Homea(Model model, @RequestParam(name = "query") String search) {
        
        model.addAttribute("clients", clientRepository.search(search));
        System.out.println(clientRepository.search(search)); // TO DISPLAY CONTENT ON CONSOLE
        System.out.println(search); // ALSO DISPLAY CONTENT ON CONSOLE
        return "search";
            
    }
}

我的仓库

public interface ClientRepository extends CrudRepository<Client, Integer> {

    @Query(value =  "select * from client where name LIKE ('%:?%')", nativeQuery = true)
    Iterable <Client> search(String search);
}

我的 HTML 文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SEARCH</title>
<meta content="Dashboard" property="og:title">
<meta content="Dashboard" property="twitter:title">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta content="Webflow" name="generator">
<link href="css/normalize.css" rel="stylesheet" type="text/css">
<link href="css/webflow.css" rel="stylesheet" type="text/css">
<link href="css/ui-login-teste.webflow.css" rel="stylesheet" type="text/css">
</head>

<body>
  <div class="w-container">
  <h1>Search results</h1>
    <form action="/search" class="w-form">
      <input type="search" class="w-input" autofocus="true" maxlength="256" name="query" placeholder="Search…" id="search">
      <input type="submit" value="Search" class="w-button">
    </form>
 </div>
      
<div class="w-container" th:each="client, interator: ${clients}">
 <a th:href="@{/crud-cliente/pagina-do-cliente/{id}(id=${client.id})}" class="table-content-link w-inline-block">
<div class="valida-table-field foto" >
<div class="table-image-wrapper avatar" th:style="'background-image: url('+@{${'/uploads/' + client.foto}}+')'"></div>
</div>
<div class="valida-table-field nome-admin"  >
   <div class="_20px" th:text="${client.name}">Nome Completo</div>
</div>
<div class="valida-table-field categoria _6">
   <div class="_20px">[[${client.phone}]]</div>
</div>
<div class="valida-table-field categoria _6">
   <div class="_20px">[[${client.email}]]</div>
</div>
<div class="valida-table-field categoria _6">
   <div class="_20px">[[${client.creation_date}]]</div>
</div>
</a>
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

你可以试试这个查询:

<input class="inputX" id="idA"></input><br />
<input class="inputX" id="idB"></input><br />
<input class="inputX" id="idC"></input><br />
<input class="inputX" id="idD"></input><br />

答案 1 :(得分:1)

我建议您调试代码并在 SSMS 中单独运行查询。然后更改您的查询并最终确定您获得所需输出的查询。

您的查询应该包含 %% 之间的搜索文本。类似的东西

@Query(value =  "select * from client where name LIKE ('%"+ searchedText +"%')", nativeQuery = true)

希望能帮到你。

相关问题