# Struts + Table



## di3u (29. Jan 2007)

Hallo,

bietet mir Struts die Möglichkeit Tabellen über ein entsprechendes Tag darzustellen, die dann bereits Zeilenauswahl, Blättern, etc. beinhaltet?

Dass ich über eine Collection mittels <logic:iterate> laufen kann und die in eine Tabelle schriebe ist mir dabei klar, aber was ich brauche wäre eben zusätzlich ein Radiobutton vor der Zeile und ggf. eine Blätteroption.

Ich bin eben über die Libary struts-layout.tld gestoßen, habe aber noch nichts passendes gefunden. Vielleicht weiß hier ja  jemand mehr?!

Danke im Voraus.


----------



## di3u (29. Jan 2007)

K, falls es noch mehr Leute geben sollte die ein ähnliches Problem haben wird euch dieser Link weiterhelfen:

Klick mich


----------



## Guest (30. Jan 2007)

Danke für den Hinweis, aber kann mir mal jemand erklären, wie ich das tag in meine JSP-Seite einbaue, bzw. was ich so alles brauche?

Unter Distribution gibts nur ganze Web-Projekte zum Download und diese Intallation notes helfen mir irgendwie auch nicht wirklich weiter?!?


----------



## Guest (30. Jan 2007)

Ich bin eben noch über diese Tag-Library gestoßen: Display Tag

Aber auch hier habe ich das Problem, dass ich diese nicht in mein Projekt eingebunden bekomme. Wenn mir hierzu vielleicht jemand weiterhelfen könnte?!

Danke im Voraus!


----------



## DreamArtist (30. Jan 2007)

Hallo, die Einbindung findest du unter

http://displaytag.sourceforge.net/11/install.html

Also zu beginn deiner JSP:


```
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
```

ansprechen kannst Du sie in der jsp dann mittels 


```
<display:table name="test">
  <display:column property="id" title="ID" />
  <display:column property="name" />
  <display:column property="email" />
  <display:column property="status" />
  <display:column property="description" title="Comments"/>
</display:table>
```


Solltest du Maven verwenden:


```
<dependency>
      <groupId>displaytag</groupId>
      <artifactId>displaytag</artifactId>
      <version>1.1</version>
    </dependency>
```

ansonst musst du dir die lib unter download http://displaytag.sourceforge.net/11/download.html
runterladen und in deinen Classpath einfügen.

lg DreamArtist


----------



## Guest (31. Jan 2007)

Ich bin jetzt mal hergegangen und habe in meiner Action eine Collection mit Beans in die Session geschrieben:

```
request.setAttribute("test",userList);
```

In der JSP versuche ich erst mal den einfachsten aller Darstellungswege:

```
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

(...)

<display:table name="test"/>
```


Das Ergebnis:

```
[ServletException in:/jsp/admin/showUserList.jsp] org/apache/commons/lang/UnhandledException' 
java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException at 
java.lang.Class.getDeclaredConstructors0(Native Method) at 
java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) at 
java.lang.Class.getConstructor0(Class.java:2640) at java.lang.Class.newInstance0(Class.java:321) at 
java.lang.Class.newInstance(Class.java:303) at java.beans.Introspector.instantiate(Introspector.java:1432) at 
java.beans.Introspector.findExplicitBeanInfo(Introspector.java:410) at 
java.beans.Introspector.(Introspector.java:359) at java.beans.Introspector.getBeanInfo(Introspector.java:159) at 
org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3712) at 
org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2120) at 
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1599) at 
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441) at 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) at 
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) at 
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1705) at 
org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441) at 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) at 
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) at 
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) at 
org.apache.jasper.compiler.Node$Root.accept(Node.java:456) at 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) at 
org.apache.jasper.compiler.Generator.generate(Generator.java:3304) at 
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) at 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295) at 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276) at 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264) at 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563) at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303) at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:822) at 
org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:398) at 
org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137) at 
org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177) at 
org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756) at 
org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:881) at 
org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473) at 
org.apache.jsp.jsp.layout.layout_jsp._jspx_meth_tiles_insert_4(org.apache.jsp.jsp.layout.layout_jsp:461) at 
org.apache.jsp.jsp.layout.layout_jsp._jspx_meth_html_html_0(org.apache.jsp.jsp.layout.layout_jsp:244) at 
org.apache.jsp.jsp.layout.layout_jsp._jspService(org.apache.jsp.jsp.layout.layout_jsp:77) at 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at 

(...)
```


Außerdem habe ich noch in meinem lib-Verzeichnis dispaytag-1.1.jar und displaytag-export-poi-1.1.jar liegen (wobei ich nicht glaube, dass ich letzteres überhaupt brauchen werde). Arbeiten tue ich mit Struts 1.2 und Tomcat 5.15.

Wenn mir also jemand weiterhelfen könnte wäre das super!!


----------



## Guest (31. Jan 2007)

DreamArtist hat gesagt.:
			
		

> ansonst musst du dir die lib unter download http://displaytag.sourceforge.net/11/download.html
> runterladen und in deinen Classpath einfügen.
> 
> lg DreamArtist




Also wenn ich lediglich in der JSP die taglib einbinde bekomme ich kein Tag "layout" angezeigt 
Ich habe jetzt auch schon mal versucht displaytag-1.1.jar, displaytag-portlet-1.1.jar und display-export-pi-1.1.jar in bein lib-Verz. einzubinden, bringt aber auch nichts...

Was mach ich falsch?


----------

