In JSF1.2, the newly specified "unified EL" will be supported anywhere
in the page.
This means that you will be able to keep on using JSP style EL
statements - those will be immediately executed on building the page,
and the JSF style EL statements (in the unified EL called "deferred"
EL statements) will be passed on to the JSF subsystem.
regards,
Martin
On 11/10/05, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
> I'm pretty sure that Simon is correct about JSF EL working anywhere in
> JSF 1.2. I know that facelets already supports using JSF EL anywhere
> in a page, even in comments.
>
> On 11/9/05, Simon Kitching <[EMAIL PROTECTED]> wrote:
> > Warren Bell wrote:
> > > I want to create a JavaScript alert window with a message from a resource
> > > bundle when I have a message to display. Getting the message is no
> > > problem,
> > > but getting it into the JavaScript is.
> > >
> > > <script language="JavaScript" type="text/JavaScript">
> > > function displayMessage()
> > > {
> > > var message = "MESSAGE HERE";
> > > if(message == "")
> > > {
> > > }
> > > else
> > > {
> > > alert(message);
> > > }
> > > }
> > > </script>
> > >
> > > <body onload="displayMessage()">
> > >
> > >
> > > I want to replace "MESSAGE HERE" with #{mainMenu.alertMessage}.
> > > #{mainMenu.alertMessage} would be an empty string or have a message. I am
> > > getting var message = "#{mainMenu.alertMessage}" instead of the value of
> > > #{mainMenu.alertMessage}.
> > >
> > > Is there a way using MyFaces to achieve this?
> >
> > I think in the next release of JSP this will be possible (EL expressions
> > evaluated in the body of the JSP page). However that's no consolation
> > for you now :-) [and I might be wrong anyhow...]
> >
> > Right now, the only place an EL expression #{..} is evaluated is in the
> > attribute of a JSF tag, so your approach above won't work.
> >
> > You might be able to do something like this:
> > <t:div style="display:none" id="mymessage" forceid="true">
> > <h:outputText value="#{...}"/>
> > </t:div>
> > to force some text to be output in a named div, but not visible to the
> > user. Then in your javascript you could do:
> > var message = document.getElementById("mymessage").innerHtml();
> > alert(message);
> >
> > The alternative would be to write a component that can emit arbitrary
> > text as a script variable, eg
> > <t:var name="message" value="#{...}"/>
> > which generates something like:
> > <script>var message="..."</script>
> >
> > There's the t:stylesheet tag which is sort of in this spirit.
> >
> > Note that writing a custom JSP component is sadly much more complicated
> > than it should be :-(
> >
> > Regards,
> >
> > Simon
> >
>
--
http://www.irian.at
Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces