struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Avlesh Singh <avl...@gmail.com>
Subject Re: JSP Recursion and the Struts include Tag
Date Sun, 12 Jul 2009 03:22:03 GMT
Never thought of using a taglib?

Cheers
Avlesh

On Sun, Jul 12, 2009 at 8:49 AM, Anthony Frasso <anf4@cornell.edu> wrote:

> Hello all, and thank you in advance.
>
> I'm relatively new to struts 2, as I started working with the
> framework about 6 months ago on a part time basis.  I'm struggling to
> solve a problem that I would think would be fairly common: displaying
> a tree within a JSP.
>
> Essentially, I have an object (let's call it "Item") that looks
> something like the following:
>
> class Item {
>
>    private String name;
>    private Set<Item> children;
>
>    // getters and setters
> }
>
> Working within a JSP page, I want to display the data within this Item
> as follows:
>
>  <ul>
>    <li>
>      <s:property value="item.name"/>
>      <s:iterator value="item.children" var="child">
>        <ul>
>          <li>
>            <s:property value="child.name"/>
>            <s:iterator value="child.children" var="grandchild">
>              <ul>
>                <li>
>                  <s:property value="grandchild.name"/>
>                  <s:iterator value="grandchild.child" var
> "greatgrandchild">
>                    ... and so on
>                  </s:iterator>
>                </li>
>              </ul>
>            </s:iterator>
>          </li>
>        </ul>
>      </s:iterator>
>    </li>
>  </ul>
>
> Ideally, I would be able to display this data using some sort of
> recursion, since there's really no way to tell how deep this tree is.
> If anyone knows of a good solution to this problem, I'd be very
> interested in hearing it.
>
> I did come up with what I thought might be a solution using the
> <s:include> tag.  I came up with the following:
>
> In the main jsp page, I have:
>
>  <ul>
>    <li>
>      <s:include value="inc/displayItem.jsp">
>        <s:param name="item" value="item"/>
>      </s:include>
>    </li>
>  </ul>
>
> In the included jsp page, I have:
>
>  <s:property value="item.name"/>
>  <s:iterator value="item.children" var="child">
>    <ul>
>      <li>
>        <s:include value="inc/displayItem.jsp">
>          <s:param name="item" value="child"/>
>        </s:include>
>      </li>
>    </ul>
>  </s:iterator>
>
> This does not work, of course, because a parameter from within an
> included jsp page can only be referenced like this: {$param.item}.  In
> addition, I can't use that method to access the included parameter
> within any struts 2 tags (as far as I can tell).
>
> So again, I suppose my question is: is this an appropriate way of
> solving this problem?  If so, how can I get this all to work?  If not,
> what's a better way of going about this?
>
> Thanks again for all of your help,
> Anthony Frasso
> anf4@cornell.edu
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message