I noticed that Craig commited the <set name="styleClass" value="@class"/> to
baseHtml. I think this is good, however I think that now if the symbol
'class' is not explicitly specified then the result will be <span
class="@class">...</span>. Is that right, Gary?
 One solution may be to set the value of the 'class' symbol in baseHtml to
empty. So, in baseHtml you have <symbols><set name="class"
value=""/></symbols>. Then have a conventional that attributes which resolve
to an empty value are omitted. I really can't think of a case you would want
an empty attribute value?


 On 11/3/05, Gary VanMatre <[EMAIL PROTECTED]> wrote:
>
> Ah, Ryan beat me to the answer. Figures, symbols was his idea anyway.
>
>
>
>
>
>
>
> ---------- Forwarded message ----------
> From: Ryan Wynn <[EMAIL PROTECTED]>
> To: Struts Users Mailing List <user@struts.apache.org>
> Date: Thu, 3 Nov 2005 22:54:38 +0000
> Subject: Re: [shale][clay] CSS style classes on substituted elements
> I believe that currently if the html attribute is not also an attribute on
> the underlying component, then the html attribute will be treated as a
> symbol.
> So, in this case if userNameMessage is actually a h:message, then
> <span jsfid="usernameMessage" class="errors" styleClass="errors">
> username error message
> </span>
> would produce <span class="errors">...</span> in both the designer and
> developer views.
> On the other hand if you wanted to utilize the new symbol functionality.
> You would change
> your clay-config.xml to add the following:
> <component jsfid="usernameMessage"..>
> <attributes>
> ...
> <set name="styleClass" value="@class"/>
> </attributes>
> </component>
> Then you could just use
> <span jsfid="usernameMessage" class="errors">
> username error message
> </span>
> in the html and still get the proper output in both designer and developer
> views.
>
> On 11/3/05, Craig McClanahan <[EMAIL PROTECTED]> wrote:
> >
> > As part of my JavaOne session on Shale, I demo'd the fact that Clay lets
> > you
> > have two different views of the page:
> >
> > Designer view: http://localhost:8080/myapp/login.html
> >
> > Developer view: http://localhost:8080/myapp/login.faces
> >
> > To demonstrate that Clay was actually parsing the HTML template, in
> > login.html I changed:
> >
> > <span jsfid="usernameMessage">
> > username error message
> > </span>
> >
> > to the following instead ("errors" is a CSS style class that turns the
> > text
> > red):
> >
> > <span jsfid="usernameMessage" class="errors">
> > username error message
> > </span>
> >
> > When you redisplay the designer view, this does indeed show a change in
> > behavior -- the "username error message" string shows up in red.
> However,
> > if
> > you redisplay the developer view and then try to enter an invalid
> > username/password, the text still comes up in black. One thing I
> noticed,
> > in
> > the emitted HTML markup for the developer view, the error message string
> > is
> > *not* surrounded by a <span class="errors>...</span>, which is (of
> course)
> > why the text didn't change color. Did some behavior change recently in
> > this
> > regard?
> >
> > I'd be fine with some alternative way of accomplishing this sort of
> > demonstration, but changing the HTML template and seeing the change
> > applied
> > immediately is a more compelling demo than something like changing
> > clay-config.html.
> >
> > Craig
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to