bens + iterator + collection

0

w pliku MyActionForm.java

tworze i wypelniam sobie kolekcje

Hash<String> collection = new Hash<String>()//czy jakos tak
Collection<String>collection2 = new Collection();

wypelniam ją stringami i w tym formie mogę dodac do niej jakies stringi
poprzez uzycie collection.add("string");

i wyswietlić jej/ich zawartość. To dziala dobrze.

Natomiast w pliku .jsp chcę wyswietlić zawartość takiej kolekcji (w sumie gdyby to byla ArrayLista a nie Hash mapa do dla mnie bez znaczenia).

więc w pliku wyswietl.jsp
po zadeklarowaniu bibliotek tld dla bean i logic

pisze sobie taki mniej więcej kod:

<logic:iterator id="nie_wiem_co_tu_wpisac" name="MyActionForm">
<bean:write name="collection" properties="??">
</logic:iterator>

w iteratorze w 'name' wpisuje nazwe mojego forma, ale nie wiem co z pozostalymi elementami czyli id oraz name i properies dla write'a?

Tylko prosze nie pisz - znajdz w googlach, bo dlugo szukalem i nadal nie moge tego obczaic.
Generalnie chce tylko zawartosc kolekcji wypelnionej w Formie wyswietlic na stronie .jsp.

Jak to zrobic dla tak prostego przykladu jak moj?

wielkie dzięlki z gory za pomoc.

0

Dwa wyjścia proponuję:

oba beda na przykladzie ksiazek, jako ze mam gotowe

  1. używasz 'czystego' JSP + jstl + EL:
  • na poczatku strony dodajesz dyrektywe
    <%@page isELIgnored="false" %>
    aby wlaczyc EL
  • <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    tą natomiast aby dodac obsluge jstl do danej strony (oczywiscie do projektu odpowiednie lib'y dodać musisz)
  • w servlecie musisz przekazac odpowiedni parametr:
public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException{
		Baza baza=new Baza();
		HttpSession session=request.getSession();
		List lista=baza.wczytajKsiazki(session);
		request.setAttribute("ksiazki",lista);
		RequestDispatcher view=request.getRequestDispatcher("/jsp/listaKsiazek.jsp");
		view.forward(request,response);
		
	}

a na stronie odczytujesz to np. tak:

<table border="1">
<tr>
<td>Autor</td>
<td>Tytul</td>
<td>Usu?</td>
</tr>
<c:forEach var="ksiazka" items="${ksiazki}">
<tr>
<td>${ksiazka.autor }</td>
<td>${ksiazka.tytul }</td>
<td><form method="post" action="usunKsiazke">
<input type="hidden" name="id" value="${ksiazka.id }">
<input type="submit"value="Usun"></form></td>
</tr>
</c:forEach>
</table>
  1. Drugi sposob opiera sie o JSF, jest duuuuzo łatwiejszy
  • majac strone jsp wklejasz tam dataTable np. taką:
	<h:dataTable border="1" value="#{bookList.books}" var="album" >
			<h:column id="column1">
			<h:outputText value="#{ksiazka.tytul}"></h:outputText>
				<f:facet name="header">
					<h:outputText value="Tytul"></h:outputText>
				</f:facet>
			</h:column>
			<h:column id="column2">
			<h:outputText value="#{ksiazka.autor}"></h:outputText>
				<f:facet name="header">
					<h:outputText value="autor"></h:outputText>
				</f:facet>
			</h:column>
		</h:dataTable>

gdzie: #{bookList.boks} jest wywolaniem odpowiedniego, stworzonego przez ciebie requestBeana posiadajacego metode getBooks ( dzieki temu masz ...books ) ktora zwraca jakąś kolekcję obiektów

pzdr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1