Link to home
Start Free TrialLog in
Avatar of konrad123
konrad123

asked on

Ourput Data into 3 Columns

Hello,

I have the following code.  

                    <% if (partVector != null) { %>

                    <% if (partVector.size() == 0) { %>
                              <i>Sorry, no parts found</i><br>
                            <% } else {
                      for (int j=0; j < partVector.size(); j++) {
                        Part part = (Part)partVector.elementAt(j);
                                if (part.productCount == 1) { %>
                          <a href="wizard.jsp?partner=<%= requestedPartner %>&year=<%= requestedYear %>&make=<%= requestedMake %>&model=<%= requestedModel %>&category=<%= category.id %>&part=<%= URLEncoder.encode(part.description) %>"><%= part.description %></a><br>
                        <% } else { %>
                          <a href="wizard.jsp?partner=<%= requestedPartner %>&year=<%= requestedYear %>&make=<%= requestedMake %>&model=<%= requestedModel %>&category=<%= category.id %>&part=<%= URLEncoder.encode(part.description) %>"><%= part.description %>...</a><br>
                           <% }
                        }
                          }      
                         } %>

This gives me a list of parts, that ranges anywhere from 1 to 50 in one column.  What I want is to be able to show this data in a table in 3 columns.  Can anyone provide the code for me?
Avatar of colr__
colr__

Use the modulo operator. So in your for loop (assuming its all held in an html table):

<table>

for (int j=0; j < partVector.size(); j++) {
if (j%3 == 0)
// print out <tr>

//print ut <td> <% output a colum %> </td>

if (j%3 == 2)
// print out </tr>

</table>

The modulo is the remainder of a division, so you can use this to easily cycle through a loop (such as 3 columns as shown above).

colr__
Avatar of konrad123

ASKER

Can you create the exact code using my above so that I can just paste it into my file?  I never worked with JSP before so it will take me hours to figure this out.
If you increase the points I'll have a bash

colr__
Try this:

<%
if (partVector != null){
      if (partVector.size() == 0) {
            response.println("<i>Sorry, no parts found</i><br>");
      }
      else {
            response.println("<table>");
            for (int j=0; j < partVector.size(); j++) {
                  if (j%3 == 0)
                        response.println("<tr>");
                  response.println("<td>");
                  Part part = (Part)partVector.elementAt(j);
                  if (part.productCount == 1) { %>
                         <a href="wizard.jsp?partner=<%= requestedPartner %>&year=<%= requestedYear %>&make=<%= requestedMake %>&model=<%= requestedModel %>&category=<%= category.id %>&part=<%= URLEncoder.encode(part.description) %>"><%= part.description %></a><br>
                  <% } else { %>
                        <a href="wizard.jsp?partner=<%= requestedPartner %>&year=<%= requestedYear %>&make=<%= requestedMake %>&model=<%= requestedModel %>&category=<%= category.id %>&part=<%= URLEncoder.encode(part.description) %>"><%= part.description %>...</a><br>
                  <% }
                  response.println("</td>");
                  if (j%3 == 2)
                        response.println("</tr>");
            } // end for
            response.println("</table>");
      }  // end else  
} // end
 %>
How many do you want to get this working in the next hour or two?  Will 300 do it?
Here is the error it creates:

Error: 500
Location: /autopartsway/part3.jsp
Internal Servlet Error:

org.apache.jasper.JasperException: Unable to compile Note: sun.tools.javac.Main has been deprecated.
/var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:195: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
                            response.println("Sorry, no parts found");
                                            ^
/var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:198: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
                            response.println("");
                                            ^
/var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:201: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
                                      response.println(" ");
                                                      ^
/var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:202: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
                                 response.println(" "); ^ /var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:317: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse. response.println(" ");
                                                 ^
/var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:319: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
                                      response.println(" ");
                                                      ^
/var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java:321: Method println(java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
                            response.println(" ");
                                            ^
Note: /var/spool/tomcat3/DEFAULT/autopartsway/part3_21.java uses or overrides a deprecated API.  Recompile with "-deprecation" for details.
7 errors, 2 warnings

      at org.apache.tomcat.facade.JasperLiaison.javac(JspInterceptor.java)
      at org.apache.tomcat.facade.JasperLiaison.processJspFile(JspInterceptor.java)
      at org.apache.tomcat.facade.JspInterceptor.requestMap(JspInterceptor.java)
      at org.apache.tomcat.core.ContextManager.processRequest(ContextManager.java)
      at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java)
      at org.apache.tomcat.core.ContextManager.service(ContextManager.java)
      at org.apache.tomcat.modules.server.Ajp13Interceptor.processConnection(Ajp13Interceptor.java)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java)
      at java.lang.Thread.run(Thread.java:536)
ASKER CERTIFIED SOLUTION
Avatar of colr__
colr__

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
thanks, it works great.  what is your area of expertise?  I may have a lot more of these simple JSP problems.
Java and JSP.
Glad to help ;-)

colr__