Re: Multi-row update with nested beans (Lab AA spoiler)
Vic Cekvencih <[email protected]> Wed, 30 Jul 2003 21:54:48 -0400
| Newsgroups | gmane.comp.java.mvc.devel |
|---|---|
| Organization | baseBeans Engineering |
| Message-ID | <[email protected]> |
Doug Shackelford wrote:
> While doing Lab3 AA (dot notation), I had some problems getting
> multi-row update to work on the taskListMR page after I nested the tasks
> inside a project. I only have one question at the end, but I thought I
> would post my journey in case it would be helpful to other students.
>
> Note: this post is a spoiler, so if you haven't done Lab AA, then I
> wouldn't read it. By the way, I highly recommend this lab. It forced
> me to a much greater understanding of what is going on.
>
> After Lab 2, my MRTaskList.jsp looked something like this. The formBean
> (fb) was a TaskBean.
>
> <c:forEach var="row" items="${fb}">
> <tr>
> <td>
> <c:url value="taskEdit" var ="url">
> <c:param name="ID" value="${row.id}"/>
> <c:param name="Dispatch" value="Edit"/>
> </c:url>
> <a href ='<c:out value="${url}"/>' >
> <fmt:message key="button.edit"
> bundle="${loc}"/>
> </a>
> </td>
> <td>
> <html:text styleClass="form" property="name"
> size="20" name="row" indexed="true"/>
> </td>
> </tr>
> </c:forEach>
>
> After nesting, the formBean (fb) became a ProjectBean with tasks.
> Accordingly, I changed the <c:forEach> to be:
>
> <c:forEach var="row" items="${fb.tasks.displayList}">
>
> This, of course, didn't work, so I changed the var to "tasks". This
> gave me this:
>
> <c:forEach var="tasks" items="${fb.tasks.displayList}">
> <tr>
> <td>
> <c:url value="taskEdit" var ="url">
> <c:param name="ID" value="${tasks.id}"/>
> <c:param name="Dispatch" value="Edit"/>
> etc.
>
> This didn't work either, so I changed it to
>
> <c:forEach var="tasks.row" items="${fb.tasks.displayList}">
>
> At first, I didn't understand why this helped. Now, I do. This really
> helped me to understand.
Above should work!
Is it easy for you to send me the sample code?
.V
>
> Unfortunately, I still had a problem with my "Edit" URL. It wasn't
> populating the ID. Everything else worked. I tried many variations
> such as:
>
> <c:param name="ID" value="${tasks.row.id}"/>
>
> I guess this doesn't work because "tasks.row" is not a valid variable
> name.
>
> Eventually, I got it working by using <bean:write>, as follows:
>
> <c:param name="ID">
> <bean:write name="tasks.row" property="id"/>
> </c:param>
>
> Given that we should avoid the bean tags in favor of JSTL, is there any
> way to do this without using <bean:write>?
>
> Thanks for any thoughts.
>
> --Doug
>