Unfortunatedly I am still using jsps instead of facelets. Escaping with slashes or backslashes does not work. EL really sucks.
I do now the following: attribute="#{MyBean.checkA?'realJsFunction':'dummyJsFunction'}('staticvalue','#{beanA.value}');" Where dummyJS is an empty javascript function. A disadvanatage is that the dummy stuff is also rendered to the client. Thanks for any help Michael -----Original Message----- From: Mike Kienenberger [mailto:[EMAIL PROTECTED] Sent: Freitag, 30. März 2007 15:36 To: MyFaces Discussion Subject: Re: escaping in EL? So what you really want is #{MyBean.checkA ? 'doJS('staticvalue',' + beanA.value + ');' : 'alert('hello'));' " Some of the issues I see - You need to somehow escape the single quotes in the javascript - You need to be able to concat the doJS expression. I've solved the second issue by writing a static concat function in facelets. That's only an option if you're using facelets, though. I don't know if there's a way to escape a single quote in EL. I'd probably solve that one with a static function that returns a single quote in facelets as well. Either that, or stick it in as a managed bean. On 3/30/07, Michael Heinen <[EMAIL PROTECTED]> wrote: > This does not work. > > The "?" must be part of the EL expression, or ? > > What I want is that if MyBean.checkA is true, then > doJS('staticvalue','#{beanA.value}'); should be printed into the attribute > value. > This expression has to be in single quotes. > The problem is that the JavaScript parameters in this function call have to > be also in single quotes. > > Something like your suggestion: > onclick=#{MyBean.checkA}?'doJS('staticvalue','#{beanA.value}');':'alert('hello'));'" > is rendered as > > true?'doJS('staticvalue','bla');':'alert('hello'));' > > Michael > > -----Original Message----- > From: Mike Kienenberger [mailto:[EMAIL PROTECTED] > Sent: Donnerstag, 29. März 2007 17:42 > To: MyFaces Discussion > Subject: Re: escaping in EL? > > Are you trying to do this? > > onclick=#{MyBean.checkA}?'doJS('staticvalue','#{beanA.value}');':'alert('hello'));'" > > Only put #{} around parts you want interpreted by EL. > > On 3/29/07, Michael Heinen <[EMAIL PROTECTED]> wrote: > > > > > > > > > > I want to express the following Javascript function call via EL: > > > > > > > > <sometag > > > > onclick=#{MyBean.checkA?'doJS('staticvalue','#{beanA.value}');':'alert('hello'));'}" > > > > </sometag> > > > > > > > > How can I do this ? > > > > Is there any way to escape this stuff ? > > > > > > > > Thanks, > > > > Michael > >