jsp

KalleM

Aktives Mitglied
hallo,
frage mich (ist noch recht neu für mich) wie es möglich ist mit <c:forEach> alle elemente eines vectors auszugeben, z.b. eine linkliste.
wenn ich es so weit richtig verstanden haben, muss ich in der *.jsp folgendes angeben:
Java:
<jsp:useBean id="klassenname" class="package.Klassenname" >
       <c:forEach var="message" items="${klassenname.methode} >
          ${message}
       </c:forEache>
</jsp:useBean>

und dann brauche ich eine Bean:
Java:
public class Bean{
    private String message;
   
    public String getMessage(){
        return message;
        }

     public void setMessage(String message){
        this.message = message;
       }
}
kann ich jetzt in dieser bean einen vector initialisieren bzw. wie kann ich die elemente dann ausgeben.
gruß
 

Antoras

Top Contributor
Dein Bean beinhaltet eigentlich nur ein Objekt, keine ganze Objektketten. Wenn doch, dann solltest du dafür aber einen eigenen Bean nehmen, da du schlecht eine Liste in einem Bean erstellen kannst, die Objekte des eigenen Beans aufnimmt. Außerdem solltest du statt Vektoren lieber Listen nehmen.

Am besten machst du das über Servlets:
Java:
public class BeanServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		List<Bean> list = new ArrayList<Bean>();
		
		for (int i = 0; i < 5; ++i) {
			Bean b = new Bean();
			b.setMessage("message" + i);
			list.add(b);
		}
		
		req.setAttribute("messages", list);
		RequestDispatcher r = req.getRequestDispatcher("beantest.jsp");
		r.forward(req, resp);
	}
}
beantest.jsp:
HTML:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
	<c:forEach var="m" items="${messages}">
		${m.message}<br>
	</c:forEach>
</body>
</html>
 

KalleM

Aktives Mitglied
hallo,
danke für die antwort. wie verhält es sich überhaupt mit der architektur einer webanwendung. es gibt anscheinend eine menge unteschiedlicher ansätze. bin jetzt bei struts gelandet, dass heisst doch, dass es ein frontcontroller (actionservlet) gibt, so muss der froncontroller nicht selbst geschrieben werden. und dieser frontcontroller leitet alle anfragen an die jeweilige bean, die dann wieder mit wieder mit einer actionclasse kommuniziert?
welchen weg würdet ihr den empfehlen?
 

Neue Themen


Oben