# Bekomme DAten von einen Jsp nicht in den Tag Handler



## DarkNight (13. Dez 2006)

Hallo Leute!

Habe mir ein Tag geschrieben das mir eine Liste von Artikeln ausgeben soll. So weit so gut. 
Nur bekomme ich nicht die Daten vom jsp in den Tag handler.
Also die Daten sind in der form von VECTOR<Article>.
Dieses erstell ich und wills dann dem Tag übergeben. Nur im Tag handler gibts keine Daten mehr.
Darf man überhaupt einen VECTOR einem Tag übergeben?

Hier mal meine JSP seite.


```
<%@ taglib prefix="wt" uri="http://jakarta.apache.org/taglibs/utilitytags" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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>IArticle List</title>
</head>
<body>
<%@ page import="webtec.dao.*,java.util.*,webtec.beans.*"%>
<%@ include file="include/admin_header.jsp"%>
<wt:categories name="testbox" size="3" firstRowValue="--testing--" multiple="false"/>
 
<%
     ArticleDAO list = new ArticleDAO();
     Vector<Article> listArticle = new Vector<Article>();
     listArticle = list.selectAll("",null,ArticleDAO.OrderBy.Name,true);
     
     
     
%>
<wt:articlelist items='${listArticle}'/>

<%@ include file="include/admin_footer.jsp" %>
```

Und hier der zugehörige Tag handler zum Tag *articlelist*.


```
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import webtec.beans.*;
import java.util.*;

public class ArticleList extends SimpleTagSupport {

	private Vector<Article> items;

	// setter Method for the attribute items
	public void setItems(Vector<Article> value) {
		this.items = value;
	}

	public void doTag() throws JspException, IOException {

		try {
			Vector<Article> itemsV = new Vector<Article>();
			itemsV = (Vector<Article>)items;
			
			
			getJspContext().getOut().println("<table border=\"0\" cellspacing=\"0\" class=\"list\">");
			getJspContext().getOut().println("<tr><th>Name</th><th>Preis</th><th>Zugehörige Kategorie</th><th>Aktiv</th><th colspan=\"3\">&</th></tr>");
			//items = (Vector<Article>) items;
			ListIterator<Article> test = itemsV.listIterator();
			Article artic = test.next();
			getJspContext().getOut().println(artic.getName());
			
			
		    int i=0;
			
			for( ListIterator<Article> iterator = itemsV.listIterator(); iterator.hasNext(); i++) {
				
				Article art = iterator.next();
				
				getJspContext().getOut().println("<tr>");
				getJspContext().getOut().println("<td>" + art.getName() + "</td>");
				getJspContext().getOut().println("<td>" + art.getPrice() + "</td>");
				getJspContext().getOut().println("<td>" + art.getCategoryName() + "</td>");
				getJspContext().getOut().println("<td>" + art.getActive() + "</td>");
				getJspContext().getOut().println("<td><a href=\"admin.jsp?go=showart\">Zeige Artikel</td>");
				getJspContext().getOut().println("<td><a href=\"admin.jsp?go=art\">Bearbeiten</td>");
				getJspContext().getOut().println("<td><a href=\"admin.jsp?go=art\">Löschen</td>");
				getJspContext().getOut().println("</tr>");
			    
						
			}
			
			getJspContext().getOut().println("</table>");

		} catch (Exception e) {

		}

	}
}
```

Bin noch ein Anfänger bei den JSPs. Aber vielleicht sieht jemand den Fehler gleich.

Gruß
Christian


----------



## Ralf Ueberfuhr (14. Dez 2006)

a) Hast du den Datentyp in der TLD entsprechend gesetzt? (<attribute>...<type>...</type></attribute>)

b) In einem solchen Anwendungsfall würde ich dir eher die Verwendung von Tag-Files empfehlen. Die sind wesentlich einfacher, da du ja hier eh nur ne for-Schleife implementierst.


----------



## DarkNight (14. Dez 2006)

Hallo

Tag-Files wären sicher sinnvoller aber meine Aufgabe ist es einen eigenen Tag-Handler zu implementieren  :bloed: 

Meiner Meinung ist der TLD richtig.

Hier mal mein TLD.


```
<tag>
      <name>articlelist</name>
      <tagclass>webtec.taglibs.ArticleList</tagclass>
      <bodycontent>empty</bodycontent>
      <attribute>
	<name>items</name>
	<required>true</required>
	<rtexprvalue>true</rtexprvalue>
      </attribute>
      <info>
        Gives out an list of aritcle information
      </info>
    </tag>
```

Schön langsam bin ich verzweifelt..

Gruß
christian


----------

