我试图在 viewPersonalData.jsp 文件中的数据库中显示员工的信息(已记录),但它只显示表格而不显示数据。数据已存储,因为我可以在创建的其他 jsp 中看到它,以查看存储的所有员工(我可以看到他们以管理员身份记录),但现在我只想查看我的数据(以员工身份记录) 。 我试图找到一些可以帮助我的东西,但我没有找到任何相关的东西。 任何帮助将不胜感激:)
viewPersonalData.jsp:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<t:pageTemplate pageTitle="View Personal Data" userType="Employee">
<div class="row">
<div class="col-xl-6">
<div class="card">
<div class="card-body">
<div class="dropdown float-right position-relative">
<a href="#" class="dropdown-toggle h4 text-muted" data-toggle="dropdown"
aria-expanded="false">
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#" class="dropdown-item">Action</a></li>
<li><a href="#" class="dropdown-item">Another action</a></li>
<li><a href="#" class="dropdown-item">Something else here</a></li>
<li class="dropdown-divider"></li>
<li><a href="#" class="dropdown-item">Separated link</a></li>
</ul>
</div>
<div class="table-responsive">
<table class="table table-centered table-hover table-xl mb-0" id="recent-orders">
<tbody>
<c:set var="userDetails" value='${requestScope.get("loggedInUser")}'/>
<tr>
<th class="border-top-1">First name</th>
<td class="text-truncate">${userDetails.firstName}</td>
</tr>
<tr>
<th class="border-top-1">Last name</th>
<td class="text-truncate">${userDetails.lastName}</td>
</tr>
<tr>
<th class="border-top-1">User type</th>
<td class="text-truncate">${userDetails.userType}</td>
</tr>
<tr>
<th class="border-top-1">Gender</th>
<td class="text-truncate">${userDetails.userGender}</td>
</tr>
<tr>
<th class="border-top-1">Date of birth</th>
<td class="text-truncate">${userDetails.birthDate}</td>
</tr>
<tr>
<th class="border-top-1">Address</th>
<td class="text-truncate">${userDetails.userAddress}</td>
</tr>
<tr>
<th class="border-top-1">Religion</th>
<td class="text-truncate">${userDetails.userReligion}</td>
</tr>[enter image description here](https://i.stack.imgur.com/HvHpE.png)
<tr>
<th class="border-top-1">Work program</th>
<td class="text-truncate">${userDetails.workTime}</td>
</tr>
<tr>
<th class="border-top-1">Salary</th>
<td class="text-truncate">${userDetails.baseSalary}</td>
</tr>
<tr>
<th class="border-top-1">Bank account</th>
<td class="text-truncate">${userDetails.bankAccount}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</t:pageTemplate>
ViewPersonalData.java:
package com.ulbs.employeeadministration.servlets.employee;
import com.ulbs.employeeadministration.dto.UserDetailsDTO;
import com.ulbs.employeeadministration.dto.converters.UserDetailsConverter;
import com.ulbs.employeeadministration.entities.UserDetailsEntity;
import com.ulbs.employeeadministration.entities.UserEntity;
import com.ulbs.employeeadministration.managers.UserDetailsManager;
import jakarta.inject.Inject;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
@WebServlet(name = "View Personal Data", value = "/ViewPersonalData")
public class ViewPersonalData extends HttpServlet {
@Inject
UserDetailsManager userDetailsManager;
@Override
protected void doGet(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
throws ServletException, IOException {
// Get the currently logged-in user
UserEntity loggedInUser = (UserEntity) servletRequest.getSession().getAttribute("loggedInUser");
if (loggedInUser != null) {
// Fetch UserDetailsEntity for the logged-in user
UserDetailsEntity userDetails = userDetailsManager.findUserDetailsByUser(loggedInUser);
if (userDetails != null) {
// Convert UserDetailsEntity to UserDetailsDTO
UserDetailsDTO userDetailsDTO = new UserDetailsConverter().convertToDTO(userDetails);
// Set userDetailsDTO as a request attribute
servletRequest.setAttribute("userDetails", userDetailsDTO);
}
}
// Forward the request to the JSP
servletRequest.getRequestDispatcher("/WEB-INF/pages/employee/viewPersonalData.jsp")
.forward(servletRequest, servletResponse);
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
}
您在 Servlet 中将键设置为“userDetails”,将值设置为 userDetailsDTO,因此在 JSP 中您需要使用
<c:set var="userDetailsJsp" value="${userDetails}"/>
然后使用“userDetailsJsp.firstname”..等在表中显示值