IKann mein hashmap nicht in jstl Arbeit bekommen
Map<String, Boolean> seatsModelComplete = new LinkedHashMap<>();
Der string
stellt Sitznummer ein Map
in einem Servlet haben und die Boolean
sagt, wenn der Sitz reserviert ist oder nicht.
stelle ich das Attribut in der Anfrage wie folgt:
request.setAttribute("seats", seatsModelComplete);
aber ich kann es nicht in einer JSP Arbeit bekommen. Insbesondere wird die Karte nicht durch den folgenden foreach
iteriert erhält
<c:forEach items="${requestScope.seats}" var="seats">
...
</c:forEach>
Hier ist meine Servlets:
@WebServlet (name = "SeatsServlet", urlpatterns = "/ Sitze")
public class SeatsServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<MovieDTO> movieDTOList = (List<MovieDTO>) request.getSession().getAttribute("movieDTOList");
int movie_id = Integer.parseInt(request.getParameter("movie_id"));
int hall_id = Integer.parseInt(request.getParameter("hall_id"));
int showtime_id = Integer.parseInt(request.getParameter("showtime_id"));
MovieDTO selected_movie = null;
Hall selected_hall = null;
Showtime selected_showtime = null;
for (MovieDTO m : movieDTOList) {
if (m.getId() == movie_id) {
selected_movie = m;
break;
}
}
if (selected_movie != null) {
request.setAttribute("movie_title", selected_movie.getTitle());
}
for (Hall h : selected_movie.getHallList()) {
if (h.getId() == hall_id) {
selected_hall = h;
break;
}
}
if (selected_hall != null) {
request.setAttribute("hall_id", selected_hall.getId());
}
for (Showtime s : selected_hall.getShowtimes()) {
if (s.getId() == showtime_id) {
selected_showtime = s;
break;
}
}
if (selected_showtime != null) {
request.setAttribute("showtime_time", selected_showtime.getTime());
}
List<Seat> seats = selected_showtime.getSeats();
int maxRows = (PropertyHolder.getInstance().getMaxRowsCount().toLowerCase().toCharArray()[0] - 'a') + 1;
int maxNumbers = Integer.parseInt(PropertyHolder.getInstance().getMaxNumberCount());
String aSeat;
boolean isReserved;
Map<String, Boolean> seatsModelComplete = new LinkedHashMap<>();
for (int i = 0; i < maxRows; i++) {
for (int j = 0; j < maxNumbers; j++) {
aSeat = (((char)('A' + i)) + "").concat((j + 1) + "") ;
isReserved = false;
for (Seat seat : seats) {
if (seat.getRow().concat(seat.getNumber() + "").equals(aSeat)){
isReserved = true;
}
}
seatsModelComplete.put(aSeat, isReserved);
}
}
request.setAttribute("seats", seatsModelComplete);
// request.getSession().setAttribute("seats", seatsModelComplete); map gets passed only here, not in request scope
request.getRequestDispatcher("/pages/seat_selection/seat_selection.jsp").forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
diese
Mögliche Duplikat [? Wie Schleife durch eine HashMap in JSP] (https://stackoverflow.com/questions/1835683/how-to-loop-through-a- hashmap-in-jsp) – Flown
Sind Sie sicher, dass Elemente zu dieser Karte hinzugefügt werden? –
herausgefunden, dass Karte in Sitzung, aber nicht in Anforderung Bereich übergeht – Roms