Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
JSP - A mailing list about Java Server Pages specification and reference
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Subject: Servlet : Session invalidate
Oracle Connection Pooling in 3 2 2
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Subject: Running a Simple JMS Example
Tomcat and webapplication specific java library path
Mapping in workers2 properties
org apache jasper JasperException
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action
   MESSAGE
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
Value attribute of <html:checkbox
url string for connecting jboss to oracle
javax servlet ServletException: BeanUtils populate
5 0 18: Windows XP Pro vs Windows 2000
HTTP Status 404 The requested resource is not available
 
Subject: Re: Accessing a row in a table on a JSP page.

Subject: Re: Accessing a row in a table on a JSP page.

2007-10-03       - By Rick Reumann

 Back
On 10/2/07, JohnLangan <langanj@(protected)> wrote:
>
> I call the database and create an ArrayList of beans to hold the data. Using
> JSTL I iterate over the list
> to display the data in an html table inside a form in a JSP page.
>
> <c:set var="dataItems" value="${lmdao.listingManagerData}" />
> <c:forEach var="item" items="${dataItems}" varStatus="row" >
> I can give each row a number using ${row.index}
>
> The last but one column is a Struts html:select that allows the user to
> select what they want to do next. The last column contains a button to press
> to implement the selected action. So far so good.
>
> My problem is that in whichever row the button is pressed it always acts on
> the data in the first row.

You can do what you want, but you have to be careful when working on
items in a collection  like that based off the index. Personally, I'd
like to work off some unique id that represents that item and do
another lookup of it when I get to my Action.

For example...
<c:forEach items="${myList} item="foo">
  <tr>
      <td><a href="/EditMe.do?id=${foo.id}">${foo.name}</td>
  </tr>
</c:forEach>

Now, when the user clicks that link(or you can make it a button also),
you go to Action and look up tthe item from the db again and set up
the form to display for the user to edit on the next page.

If you want to use the collection approach. You have to first fix a few things.
First off using <c:set var="dataItems" value="${lmdao.listingManagerData}" />
will be VERY bad.  Imagine you display your list after the above, now
you pick the 3rd item. How do you plan to get the 3rd item again? Are
you going to call that lmdao.getListinManagerData again in your action
and then pick the 3rd index? For one, the list might have changed so
now you are editing the wrong one, and also, why get the whole list
again? If you go that route your much better using the approach I
showed. The list index approach will work if you first put that list
in session scope BEFORE you go to your page and then you'd just do

//no c:set - use the session scoped list...
<c:forEach var="item" items="${dataItems}" varStatus="row" >
  <tr><td><a href="/DoSomething.do?index=${row.index}">${item.name}</td></tr>
</c:forEach>

Now you have the index when you click on the link so in your next
action you can pull the list out of session scope and then get the
item. (Again, I'm not a huge fan of this approach - mainly because now
you just stuffed a large collection in the session that really doesn't
need to be there. Approach one doesn't have this problem.)

-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)


©2008 junlu.com - Jax Systems, LLC, U.S.A.