It is a bug.
I followed the DefautAddResource.java code for:
addResource.addInlineScriptAtPosition(context, AddResource.BODY_ONLOAD ,
script);
InlineScriptPositionedInfo was cast to AttributeInfo.
see the highlighted line below.
Is there a workaround for adding script for <body onload="script">?
Thanks!
/**
* Adds the given Inline Script at the specified document position.
*/
public void addInlineScriptAtPosition(FacesContext context,
ResourcePosition position,
String inlineScript)
{
addPositionedInfo(position, getInlineScriptInstance(inlineScript));
}
private PositionedInfo getInlineScriptInstance(String inlineScript)
{
return new InlineScriptPositionedInfo(inlineScript);
}
if (bodyInsertPosition > 0)
{
StringBuffer buf = new StringBuffer();
Set bodyInfos = getBodyOnloadInfos();
if (bodyInfos.size() > 0)
{
int i = 0;
for (Iterator it = getBodyOnloadInfos().iterator();
it.hasNext();)
{
AttributeInfo positionedInfo = (AttributeInfo) it.next();
if (i == 0)
{
buf.append(positionedInfo.getAttributeName());
buf.append("=\"");
}
buf.append(positionedInfo.getAttributeValue());
i++;
}
buf.append("\"");
originalResponse.insert(bodyInsertPosition - 1, " " +
buf.toString());
}
}
Dave <[EMAIL PROTECTED]> wrote:
I tried, but still got the same exception. Any difference between "return
null" and "return empty string" for <outputText>? Any helps are appreciated.
java.lang.ClassCastException:
org.apache.myfaces.renderkit.html.util.DefaultAddResource$InlineScriptPositionedInfo
at
org.apache.myfaces.renderkit.html.util.DefaultAddResource.writeWithFullHeader(DefaultAddResource.java:803)
at
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:170)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
Glauco Pimentel Gomes <[EMAIL PROTECTED]> wrote:
Return an empty String "";
Glauco P. Gomes
Dave escreveu:
> HI Omidh,
>
> Thanks for help.
> I used to trigger the code to add javascript. If the
> method returns "work done", it would show up on page.
>
> Dave
>
> */omidh /* wrote:
>
>
> Try to return a String...
>
> public String getAddResource() {
> FacesContext context = FacesContext.getCurrentInstance();
> AddResource addResource = AddResourceFactory.getInstance(context);
> addResource.addInlineScriptAtPosition(context, AddResource.BODY_END,
> script1);
> addResource.addInlineScriptAtPosition(context,
> AddResource.BODY_ONLOAD ,
> script2);
> return "work done";
> }
>
> I added these in my Portlet-Impl in the render() and it works so
> far ok
> (without problems):
>
> FacesContext fCtx = null;
> fCtx = facesContext(request, response);
>
> AddResource resource = AddResourceFactory.getInstance(fCtx);
> logger.debug("resource: "+ resource);
>
> resource.addJavaScriptAtPosition(fCtx, AddResource.HEADER_BEGIN,
> "/tiny_mce/tiny_mce.js");
>
> resource.addInlineScriptAtPosition(fCtx, AddResource.HEADER_BEGIN,
> "tinyMCE.init({" +
> "mode : \"textareas\", " +
> "theme : \"advanced\", " +
> "});");
>
>
>
>
> Dave-53 wrote:
> >
> > I tried to use
> >
> > to add javascript.
> >
> > public String getAddResource() {
> > FacesContext context = FacesContext.getCurrentInstance();
> > AddResource addResource = AddResourceFactory.getInstance(context);
> > addResource.addInlineScriptAtPosition(context, AddResource.BODY_END,
> > script1);
> > addResource.addInlineScriptAtPosition(context,
> AddResource.BODY_ONLOAD
> > , script2);
> > }
> >
> > But got the following exception. I am not sure how to use
> AddResource in
> > correct way. Thanks for help.
> >
> >
> > java.lang.ClassCastException:
> >
> org.apache.myfaces.renderkit.html.util.DefaultAddResource$InlineScriptPositionedInfo
> > at
> >
> org.apache.myfaces.renderkit.html.util.DefaultAddResource.writeWithFullHeader(DefaultAddResource.java:803)
> > at
> >
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:170)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
---------------------------------
Be a better Heartthrob. Get better relationship answers from someone who knows.
Yahoo! Answers - Check it out.