如何在我的html spring-boot jdbc上同时显示名字和姓氏



我在jdbcTemplate中使用了一个select语句。我正在尝试选择名字和姓氏,并将它们显示在html页面上,但我遇到了错误。我在HTml页面上得到的错误代码是">";列计数不正确:应为1,实际为2

public List<String> getAllUserNames() {
List<String> usernameList = new ArrayList<>();
usernameList.addAll(jdbcTemplate.queryForList("SELECT FirstName,Surname from paitents",String.class));
return usernameList;
}

Html文件

<tr th:each="user : ${users}">
<a href="#" th:text="${user} + ${user.Surname}" ></a> <br>
<!--    <td th:text="${user}"> </td> <br>-->
</tr>
</body>

您正在构建一个String列表,然后尝试在列表中插入一个复杂的对象类型。这里有两个解决方案;第一种方法是使用复杂类型并使用该列表。一个例子可能如下:

public List<User> findAllUsers() {
String sql = "SELECT FirstName,Surname from paitents";
return jdbcTemplate.query(sql,
(rs, rowNum) ->
new User(
rs.getString("FirstName"),
rs.getString("Surname")
));
}

然后在百里香代码中:

<tr th:each="user : ${users}">
<a href="#" th:text="${user.FirstName} + ${user.Surname}" ></a> <br>
</tr>

另一个解决方案是快速修复,您可以使用sql技巧来做到这一点:

public List<String> getAllUserNames() {
List<String> usernameList = new ArrayList<>();
usernameList.addAll(jdbcTemplate.queryForList("SELECT CONCAT(FirstName, ' ', Surname) AS FullName from paitents",String.class));
return usernameList;
}

你应该把这个列表放在你的控制器方法的模型中:

model.addAttribute("fullNameList", usernameList);

然后在视图层:

<tr th:each="fullName : ${fullNameList}">
<a href="#" th:text="${fullName}" ></a> <br>
</tr>

最新更新