No same error...
Code: <% class MyMap { public Map<String, String> map = new HashMap<String, String>(); public MyMap(String a, String b, String c) { map.put("a", a); map.put("b", b); map.put("c", c); } public Map<String, String> getMap() { return map; } } List mapList = new ArrayList(); for (int i = 0; i < 10; i++) { MyMap myMap = new MyMap("a" + String.valueOf(i), "b" + String.valueOf(i), "c" + String.valueOf(i)); mapList.add(myMap); } request.setAttribute("testis", mapList); %> <display:table name="testis" export="true"> <display:setProperty name="export.excel.filename" value="test.xls"/> <display:column property="map(a)" title="A*"/> <display:column property="map(b)" title="B*"/> <display:column property="map(c)" title="C*"/> </display:table> <%@ include file="footer.jsp" %> Error: javax.servlet.jsp.JspException: Error looking up property "map(a)" in object type "org.apache.jsp.viewDamageStatistic_jsp$1MyMap". org.displaytag.render.TableWriterTemplate.writeTable(TableWriterTemplate.java:161) org.displaytag.render.HtmlTableWriter.writeTable(HtmlTableWriter.java:643) org.displaytag.tags.TableTag.writeHTMLData(TableTag.java:1549) org.displaytag.tags.TableTag.doEndTag(TableTag.java:1218) org.apache.jsp.viewDamageStatistic_jsp._jspService(viewDamageStatistic_jsp.java:406) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) javax.servlet.http.HttpServlet.service(HttpServlet.java:688) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) javax.servlet.http.HttpServlet.service(HttpServlet.java:688) org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358) org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294) org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) org.mortbay.http.HttpContext.handle(HttpContext.java:1807) org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525) org.mortbay.http.HttpContext.handle(HttpContext.java:1757) org.mortbay.http.HttpServer.service(HttpServer.java:879) org.mortbay.http.HttpConnection.service(HttpConnection.java:789) org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) -----Ursprungligt meddelande----- Från: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] För Ed Webb Skickat: den 20 februari 2008 11:24 Till: displaytag-user@lists.sourceforge.net Ämne: Re: [displaytag-user] Creating display tables from 2D string array Simon Rydberg wrote: > Hmmm thanks for a fast reply. > > How is that suppose to work? > > I have made a little example but I cannot get it to work. > In jsp-file > <% > Map<String, String> map = new HashMap<String, String>(); > for (int i = 0; i < 10; i++) { > map.put("a", "a" + String.valueOf(i)); > map.put("b", "a" + String.valueOf(i)); > map.put("c", "a" + String.valueOf(i)); > } > request.setAttribute("map", map); > %> > <display:table name="map" export="true" pagesize="10000" > defaultorder="descending"> > <display:setProperty name="export.excel.filename" > value="test.xls"/> > <display:column property="map(a)" title="A*"/> > <display:column property="map(b)" title="B*"/> > <display:column property="map(c)" title="C*"/> > > </display:table> > > > javax.servlet.jsp.JspException: Error looking up property "map(a)" in object > type "java.lang.String". That is because your data object is a Map of Strings and not of objects containing a getMap() method. It's using the Map as a source of rows (each entry = one row) and then trying to call getMap() on the value of the Map entry's value which is, as it tells you, of type java.lang.String. Create a class: public class MyMap { private Map<String, String> map = new HashMap<String, String>(); public MyMap(String a, String b, String c) { map.put("A", a); map.put("B", b); map.put("C", c); } public Map<String, String> getMap() { return map; } } In a jsp file: <% List<MyMap> map = new ArrayList<MyMap>(); for (int i = 0; i < 10; i++) { map.add(new MyMap("a" + i, "b" + i, "c" + i)); } request.setAttribute("map", map); %> <display:table name="map"> <display:column property="map(A)" title="A*"/> <display:column property="map(B)" title="B*"/> <display:column property="map(C)" title="C*"/> </display:table> Does that work any better? Ed! ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ displaytag-user mailing list displaytag-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/displaytag-user ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ displaytag-user mailing list displaytag-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/displaytag-user