I believe that's strictly an XML error--the parser doesn't like having < or > within attributes (or anything else that isn't part of an element definition.) Did you try escaping the <>'s? (e.g. '<' to '<' and '>' to '>'.)
-Jason On Monday 12 June 2006 23:51, [EMAIL PROTECTED] wrote: > Thanks Ryan. I tried using more correct html but I still got the same > parsing error: > > "Closing tag </li> on line 28 is improperly nested with tag <span> on line > 27." > > So I don't know of a way to put the closing tags in an If component. > And if I try to put the tags in the bindings, I get a different parse > error: > > <component id="insertUlTag" type="Insert"> <binding name="value" > value="'<ul>'"/> <binding name="raw" value="true"/> > </component> > > > "Unable to read context:/WEB-INF/MyDiscussion.page: The value of attribute > "value" associated with an element type "binding" must not contain the '<' > character." > > So, I guess using a custom library of open and close tags may just be the > best way to go. > > > Date: Sun, 11 Jun 2006 11:55:45 -0700> From: [EMAIL PROTECTED]> To: > > users@tapestry.apache.org> Subject: Re: conditional and nested ul and li > > tags> > First, you can't nest UL tags outside of LI tags. I'm sure most > > browsers > will render it correctly, but a more strict parser (like the > > Tapestry > page parser) will choke on it. Your HTML structure needs to > > be:> > <ul>> <li>Post 1</li>> <li>Post 2> <ul>> > > <li>Post 2, Reply A</li>> <li>Post 2, Reply B> > > <ul>> <li>Post 2, Reply B, Reply i</li>> > > <li>Post 2, Reply B, Reply ii</li>> </ul>> > > </li>> <li>Post 2, Reply C</li>> </ul>> </li>> > > <li>Post 3</li>> </ul>> > Second, in page and component specifications, > > binding values are assumed > to be OGNL calls unless you specify a prefix > > (unlike templates, where > values are assumed to be literal strings > > unless there is a prefix). So > there are two ways to fix your Insert > > component:> > <component id="insertUlTag" type="Insert">> <binding > > name="value" value="'<ul>'"/>> <binding name="raw" value="true"/>> > > </component>> > -- or --> > <component id="insertUlTag" type="Insert">> > > <binding name="value" value="literal:<ul>"/>> <binding name="raw" > > value="true"/>> </component>> > Note that the "raw" parameter is required > > to prevent Tapestry from > escaping the HTML.> > Last, you're probably > > looking for a recursive "DisplayReplies" component > to walk the tree of > > replies and created nested UL's and LI's as needed. > That's a little > > difficult to do in Tapestry because you can't create > simple recursive > > components. In other words, you can't easily render > (conditionally or > > otherwise) a component inside of itself without a > getting a stack > > overflow exception. You have to use a trick involving > Block and > > RenderBlock to get recursive behavior. If you're interested, I > can post > > a tiny Tapestry app that demonstrates how to do this. It uses > > > "articles" and "comments" rather than posts and replies, but it is a > > > stripped down demo with one page and one component demonstrating what I > > > think you are trying to do and nothing more (and it uses UL and LI > > tags).> > -Ryan> > [EMAIL PROTECTED] wrote:> > I am trying to set up a > > page that has comments listed in a big list surrounded by ul tags. Under > > certains conditions, I want to nest more ul tags. Like this:<ul> > > <li>this is post 1</li> <li>this is post 2</li> <ul> > > <li>this is reply to post 2</li> <li>this is another reply to post > > 2</li> <li>this it yet an additional reply</li> <ul> > > <li>And this is a reply to the one above</li> </ul> > > <li>The last reply to post 2</li> </ul> <li>this is post > > 3</li></ul>However, I run into problem in Tapestry when I try to do > > something like this:<span jwcid="ifSomething"> </ul></span>Tapestry > > complains that I am improperly nesting a </ul> tag inside a span. One way > > I thought of getting arround this was to use an Insert so that the html > > would be:<span jwcid="ifSomething"> <span > > jwcid="insertUlTag"/></span>Which sort of worked until I go to the page > > descriptor and I couldn't figure out how to put "<ul>" in the > > binding:<component id="insertUlTag" type="Insert"> <binding > > name="value" value="<ul>"/> </component>The parser complained > > and using CDATA didn't help. So I ended up making a getUlOpenTag method > > on the java file for the page which return "<ul>" so then I had > > this:<component id="insertUlOpenTag" type="Insert"> <binding > > name="value" value="ulOpenTag"/> <binding name="raw" > > value="true"/> </component>and that worked.But is there not an easier > > way? I actually ended up creating a new library that just had open and > > close HTML tags just for instances like this.Thanks> > > > _________________________________________________________________> > > > Express yourself instantly with MSN Messenger! Download today it's FREE!> > > > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/> > > > > > > > > ---------------------------------------------------------------------> To > > unsubscribe, e-mail: [EMAIL PROTECTED]> For > > additional commands, e-mail: [EMAIL PROTECTED]> > > _________________________________________________________________ > Express yourself instantly with MSN Messenger! Download today it's FREE! > http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ -- Zapp: You win again, gravity! -------------- Jason Dyer BlueTarp Financial, inc. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]