使用Thymeleaf,Spring Boot生成超链接

时间:2018-03-08 12:49:24

标签: html spring spring-boot thymeleaf

我在使用Thymeleaf生成html链接时遇到问题。我使用了jpa,我有2个桌子('用户'以及' selectedUsers')我'我做了一个html页面,其中表'用户'显示为列表。

它有效,但我想在此列表的每个生成元素中添加一个超链接,该超链接将为“选择的用户”增加价值。表。控制器应该是正确的,但我不知道如何生成链接

http://localhost:8080/selectedusers/create?name=<name of current element in 'users table'>

如果使用百日咳不可能产生这种情况,可能还有另一种方法可以将值插入到选定的用户身上。

Html页面:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>All users</title>
</head>
<body>
<div id="container">
    <h1> List of all users: </h1>
    <ul th:each="user : ${users}">
        <div id="list">
            User data:
            <p th:text="${user.name} + ' | ' + ${user.email}"></p>
            <a href="/selectedusers/create?name=      ">Click here to add 
            this user to another table in database</a>
        </div>
    </ul>
</div>
</body>
</html>

控制器的一部分:

@GetMapping("/find-all-users")
public String findUsers(Model model) {
    model.addAttribute("users", userDao.findAll());
    return "findusers";
}

@Autowired
private SelectedUserDao selectedUserDao;

@RequestMapping("/selectedusers/create")
public String create(@RequestParam("name") String name) {
    String selectedUserId="";

    SelectedUser selectedUser= new SelectedUser(name);
    selectedUserDao.save(selectedUser);
    selectedUserId = String.valueOf(selectedUser.getId());
    return "findusers";
}

1 个答案:

答案 0 :(得分:2)

documentation中所述,您可以使用百里香标准方言。

<a th:href="@{/selectedusers/create(name=${user.name})}">Click here to add 
                this user to another table in database</a>

在内部,这将产生如下链接:

/selectedusers/create?name=anyName