Thymeleaf:通过url中的get form操作传递参数

时间:2019-05-28 04:48:10

标签: spring-mvc thymeleaf

我在控制器中有一个参数,我想以获取表格的形式在URL中找回它

我想通过代理商在列表中搜索对象,但是问题是百里香给我提供了一个伪造的URL,这是示例

在这里,我将使用关键字agency搜索

<form th:action="@{lien(key=${key})}" method="get"> 
<input type="text" name="agence" th:value="${agence}" class="form-control"
                     placeholder=" Agence client..." />

这是clientController:

@RequestMapping(value = "/lien")
public String droitUtilisateur(Model model,
        @RequestParam(name = "key", defaultValue = "0") int key, 
        @RequestParam(name = "page", defaultValue = "0") int p,
        @RequestParam(name = "size", defaultValue = "5") int s,
        @RequestParam(name = "agence", defaultValue = "") String agence) {
    String result = "";
    switch(key) {
    case 24421:
        Page<Client> pageClients = clientRepository.chercherParNom("%" + agence + "%", new PageRequest(p, s));
        model.addAttribute("listClient",pageClients.getContent()) ;
        int[] pages = new int[pageClients.getTotalPages()];
        model.addAttribute("pages", pages);
        model.addAttribute("pageCourante", p);
        model.addAttribute("size", s);
        model.addAttribute("key", key);
        model.addAttribute("agence", agence);
        result= key+"";
        break;

    }


    return result;
}

返回此链接:

http://localhost:6262/lien?agence=100

出现此错误

  

模板名称不能为null或为空

但是应该是这样

http://localhost:6262/lien?key=24421&agence=100

1 个答案:

答案 0 :(得分:0)

您不能将url中的参数与表单字段中的参数混合使用。您应该为key添加隐藏的输入:

<form th:action="@{lien}" method="get"> 
    <input type="hidden" name="key" th:value="${key}" />
    <input type="text" name="agence" th:value="${agence}" class="form-control" placeholder=" Agence client..." />