Thymeleaf dynamic form action url

て烟熏妆下的殇ゞ 提交于 2020-04-17 20:28:42

问题


<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>

Springboot

How to construct expression for th:action "action url" in form? Url depends on "name" variable.

I'm trying like this, but it's not working:

<form method="get"
    th:action="@{'/' + {baseUrl}(baseUrl=${#strings.isEmpty(name) ? '' : 'user/find/'})}">

    <input type="text" th:value="${name}"/>
    <button type="submit">Find</button>
    <button type="button"
            th:classappend="${#strings.isEmpty(name)}?'hidden':''"
            onclick="clearSearch()">X</button>
</form>

and I tried this, doesn't work too:

<form th:with="baseUrl=(${#strings.isEmpty(name) ? '/' : '/user/find/'})"
      th:action="@{${baseUrl}}" method="get">

回答1:


Oh sorry. I realized Thymeleaf is not for dynamically handling input field.

I just write a JS code.

$(document).ready(function () {
    var searchForm = $(this).find('#searchForm');
    searchForm.on('click', '#searchButton', function (event) {
      var form = $('#searchForm');
      var name = $('#searchInputName').val();
      var addUrl = (name === '') ? '/' : '/user/find/';
      form.attr('action', addUrl);
    });
});

after that I realized I can realize it simpler in my controller :)

@GetMapping("/user/find/")
public String getNextPage(Model model, Pageable pageable,
@RequestParam(name = "name") String name) {

    if (name.isEmpty()) return "redirect:/";
....
}


来源:https://stackoverflow.com/questions/49772744/thymeleaf-dynamic-form-action-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!