gpt4 book ai didi

java - 如何使用jsp View 检查某个用户是否创建了数据库项

转载 作者:行者123 更新时间:2023-11-29 04:34:41 25 4
gpt4 key购买 nike

我有一个名为 bookings 的数据库表,我正在尝试做但到目前为止找不到的是检查 if-else,是否有特定用户进行的预订,并将它们显示在表中.

enter image description here

所以我正在寻找这样的东西:

(下面是半伪代码)

<c:when test="${bookings.where(booking.userId == currentUserId) > 0}">
display table with those items...
</c:when>

所以这会得到该用户创建的所有表项

如何在 jsp View 页面中测试它?

提前致谢。

PS:显示项目不是问题,我至少可以自己做:)

编辑后端部分:

@GetMapping("/bookings")
public String getAllBookings(Model model) {

Authentication auth = SecurityContextHolder.getContext().getAuthentication();
UserDetails userDetail = (UserDetails) auth.getPrincipal();

User user = userService.findByUsername(userDetail.getUsername());
int currentUserId = user.getId();

List<Booking> bookings = bookingService.getAllBookings();
model.addAttribute("bookings", bookings);

model.addAttribute("currentUserId", currentUserId);
model.addAttribute("currentUser", getPrincipal());

return "booking-list";
}

最佳答案

首先,您可能应该在后端执行此操作并只传递过滤列表,但对于 jsp 方法,您可以使用 forEach

例子:

<c:forEach items="${bookings}" var="booking">
<c:if test="${booking.userId == currentUserId}">
...
</c:if>
</c:forEach>

编辑:问题已更新

要在后端过滤预订,您可以使用 Stream API:

List<Booking> bookings = bookingService.getAllBookings().stream()
.filter(b -> b.getUserId() == currentUserId)
.collect(Collectors.toList());
model.addAttribute("bookings", bookings);

编辑 2.0:

实际上,您甚至不应该在 java 中过滤它们。由于您从数据库中获取数据,因此您应该实现 getBookingsForUserId() 并使用 WHERE 子句来过滤它们。

关于java - 如何使用jsp View 检查某个用户是否创建了数据库项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com