【问题标题】:How to display search results MVC如何显示搜索结果 MVC
【发布时间】:2021-02-04 11:52:11
【问题描述】:

我是一个初学者,我遇到了一个我无法理解的异常情况。从我的角度来看,一切似乎都很好,但是当我在我的 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>

【问题讨论】:

    标签: java html sql


    【解决方案1】:

    你可以试试这个查询:

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

    【讨论】:

    • 谢谢,但它仍然返回相同的响应。
    【解决方案2】:

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

    您的查询应该有 %% 之间的搜索文本。有点像

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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 2023-04-07
      相关资源
      最近更新 更多