• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Listowanie z servletu (arrayLIst) do Html (jsp)

+1 głos
690 wizyt
pytanie zadane 4 maja 2015 w Java przez Reflexip Początkujący (450 p.)

Siema,

Mam taki problem. Przygotowałem sobie listę. Metoda która ją zwraca wygląda tak:
 

public static ArrayList<String> getUsersList(UsersManager usersManager){
		ArrayList<String> usersList = new ArrayList<String>();
		for(User user : usersManager.getUsers()){
			usersList.add("Login: " + user.getLogin() + " Account Type: " + user.getAccType());
		}		
		return usersList;
	}

I teraz chciałbym zmienną usersList wysłać w jakiś sposób (pewnie jako atrybut requesta) do pliku jsp. tak żeby ten mi wyświetlił listę użytkowników. Ok udaje się wysłać jako atrybut, ale jak to przeorać w html ?

bo póki co otrzymuję coś takiego np:
[Login: admin Account Type: ADMIN, Login: dawid Account Type: NORMAL]

A ja chciałbym każdego usera w osobnym wierszu.

Ma ktoś pomysł?

 

2 odpowiedzi

+1 głos
odpowiedź 4 maja 2015 przez Mateusz Dalgiewicz Mądrala (5,270 p.)
wybrane 5 maja 2015 przez Reflexip
 
Najlepsza
Witam, 

Mozesz to zrobic np w taki sposob, utworzylem tutaj dla przykladu na piechote kilka obiektow Userek ale rownie dobrze mozesz uzyc do tego funkcji ktora zwroci liste uzytkownikow

protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		
		Userek u1 = new Userek("Jan", "Dzban");
		Userek u2 = new Userek("Admin", "adminek");
		Userek u3 = new Userek("Mariusz", "Kowalski");
		
		ArrayList<Userek> users = new ArrayList<Userek>();
		users.add(u1);
		users.add(u2);
		users.add(u3);
		
        request.setAttribute("users", users);
		
		RequestDispatcher rd = getServletConfig().getServletContext().getRequestDispatcher("/test2.jsp").forward(request, response);
}

A tutaj test2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1> Przyklad listy</h1>
 <%
ArrayList<Userek> users = new ArrayList<Userek>();
users = (ArrayList<Userek>) request.getAttribute("users");
 
for(Userek u : users) {
    out.println(u.getFirstName()+ " " + u.getLastName());
    %></br><%}
%>

</body>
</html>

w test2.jsp w petli juz mozesz zrobic co ci sie podoba tutaj dla przykladu wyswietla uzytkownikow w odzielnych liniach

0 głosów
odpowiedź 4 maja 2015 przez Mateusz Dalgiewicz Mądrala (5,270 p.)

Jeszcze tak sie zastanawiam nad funkcja ktora wstawiles. Moze lepszym wyjsciem bedzie zwrocenie listy ale z obiektami twojej klasy "User" a nie ze "Stringami" ? Mysle ze byloby to bardziej elastyczne.  Oczywiscie to zalezy od twoich potrzeb :)

Na przyklad:

public static ArrayList<User> getUsersList(UsersManager usersManager){    
        return usersManager.getUsers();
    }

 

komentarz 5 maja 2015 przez Reflexip Początkujący (450 p.)
Dzieki, baaardzo pomogłeś :D ;) Nie wiedziałem tylko jak odebrać tą listę w jsp. Nie wiedziałem że w znacznikach <% %> można w sumie robić wszystko. Jestem początkujący  stąd takie braki. Jeszcze raz dzięki. O to właśnie chodziło ; )

Podobne pytania

0 głosów
1 odpowiedź 227 wizyt
pytanie zadane 1 maja 2015 w Java przez Reflexip Początkujący (450 p.)
0 głosów
0 odpowiedzi 189 wizyt
pytanie zadane 29 kwietnia 2018 w Java przez Mateusz Gęborski Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 139 wizyt
pytanie zadane 24 lipca 2017 w Java przez Mateusz Nowicjusz (220 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...