OA PPR vs AJAX

Hi all,
I was trying to think of the difference between OA PPR and AJAX. PPR also submits a request using javascript like AJAX. But I think it is not the same as AJAX somehow. Would be interested to discuss this in the thread here :).
Best Regards,
Srini

I have found the difference between PPR & AJAX and am wondering why PPR was used at all as it looks cumbersome when compared to AJAX -
1. PPR uses a hidden iFrame to communicate with server. When a UI javascript event is fired, navigation is forced into this hidden iFrame that takes care of further communication with server.
In contrast AJAX uses XML in XMLHttpRequest object to communicate with server.
2. In PPR PartialPageContext object takes care of the state of the partial page element whereas in AJAX XMLHttpRequest object does the same job.
3. AJAX uses DOM for dynamic display. I do not think PPR uses the same and the way the dynamism is brought about using the hidden iFrame is all mysterious.
Simply put, AJAX is more transparent than PPR and also more neat.

Similar Messages

  • Error while using ajax in jsff

    Hi All,
    I am using JDev 11.1.2.0 to develop my ADF Page
    I want to use ajax in one of my jsff to us the activeOutputText component for autpmatic ppr
    I am using the following code :
    <f:ajax onevent="function(e) {}" event="PropertyChange" render="t1 t2 ot3 ot2">
    <af:activeOutputText value="#{TestBean.message}" id="aot1">
    <f:ajax/>
    </af:activeOutputText>
    </f:ajax>
    When I am running the page , I am getting the following error :
    Line # 4 <af:panelGroupLayout id="pgl2">
    Error: http://java.sun.com/jsf/core:ajax is not registered tag in the specified namesapace.
    Please suggest to resolve this issue

    hI,
    Thanks for the reply..
    I am getting this error message in the logs
    " Line # 4 <af:panelGroupLayout id="pgl2">
    Error: http://java.sun.com/jsf/core:ajax is not registered tag in the specified namesapace. "
    The begining of my jsff looks like this
    <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
    xmlns:f="http://java.sun.com/jsf/core">

  • Af:region, PPR and onload handler

    We develop custom JSF components that need some javascript counterpart on the client.
    These counterparts needs to be initialized (through some AJAX calls) when the page is ready to be displayed.
    In old technologies, this was done through an "onload" javascript handler placed on the page.
    In Apache Trinidad PPR, the page is already loaded when the components are rendered, and we need to register those scripts at render time (in encodeEnd) through :
    ExtendedRenderKitService service =  Service.getRenderKitService(context, ExtendedRenderKitService.class); 
    service.addScript(context, jsMethod);This method is available in ADF, so we can reuse this.
    However, since the default onload mechanism already calls the scripts, and we want the scripts to be called only once, we need to make sure we are in a PPR context by using something like
    reqContext.isPartialRequest(context);Now, in an af:region use case, we are not really in a PPR rendering (isPartialRequest returns false). What API should I use to check that the page is already loaded and we are just rendering a new region in that page ?

    I tried the AdfFacesContext.getCurrentInstance().isInitialRender() through layers of reflection, to keep independent at compile time from ADF.
    However, even when this "initialRender" flag is true, the page rendering (client side) still goes through ADF AJAX calls and does not happen directly in the browser window.
    I need in fact to detect, server side, whether the HTML I'm rendering will be executed directly in the browser (in that case, the "onload" happens) or through some indirection on the client where DOM elements such as "document" or "window" may not exist. In the latter case, I will register a script through the ExtendedRenderKitService class.
    Any idea on the way I can do this in case of an af:region ?

  • PPR and af:InputFile Double Browse

    Hi All,
    Background: I have an application that uses PPR to upload a file and display the file's content in a textarea.
    Problem: Performing consecuitive uploads causes a javascript error.
    Upload 1) Uploads a file successfully,
    Upload 2) results in a javascript error.
    We think this may be a AJAX issue as debugging seems to suggest that the function _uixspu (from the PPR) is to blame.
    Javascript inserted in webpage after Upload 2 by ADF:
    var _pprUpdateMode=false;
    function _uixspu(f,v,e,s,pt,p,o){
    _pprUpdateMode=true;
    if(!o)
    o=new Object();
    o.event=(e)?e:'update';
    if(s)
    o.source=s;
    if(p){
    o.partial='true';
    if(pt)
    o.partialTargets=pt;
    _submitPartialChange(f,v,o);
    else
    submitForm(f,v,o);
    The onclick action on the Upload Button:
    uixspu('id3',1,0,'uploadButton',0,1,0);return false;
    Any help would be great
    Cheers

    Frank - Thanks for your reply.
    Our Senior ADF developer found out that the problem was to do with not using proper <afh:body> tag on the page. Don't mix html tags and adf tags
    Lesson learned - keep to the framework or it hurts :-)

  • Difference between Report Template "Standard (PPR)" and "Standard"?

    What is the difference between Report Template "Standard (PPR)" and Report Template "Standard"? What does PPR mean and what makes it different? Why would you use PPR rather than just standard?
    Thanks,
    Linda

    Hello,
    PPR (Partial Page Refresh) is just a term used to describe some AJAX pagination and sorting functionality, it's just a holdover from before the term AJAX existed.
    You can just change the template and on your report to enable that functionality. In 3.0 it will just be on off switch in your pagination options.
    Carl
    Message was edited by:
    Carl Backstrom

  • Reset report pagination using javascript / ajax ?

    Hiho,
    i have a page where i pull a ppr report from a different page using htmldb_get like described in Carls excellent examples. The first page also contains a textfield to set a where condition in the report, for examle to search a streetname..
    Now i need a way to reset the pagination of the report using javascript.
    Example:
    I search for street_name_1 and the report returns 100 rows, 10 rows on each page. Now i use the pagination links to switch throught report pages to page 5.
    Now i search for street_name_2 and the report returns 5 rows, so this would only be one page in the report. But the report pagination still is on page 5, so no results are shown. And no pagination buttons either.
    What can i do to reset the pagination before i pull the report without submitting the page?
    Thanks for help,
    DIrk

    I have similar problem with AJAX report pagination. When I click the pagination for next set of rows, it gives "undefined" error. I'm trying to call "get.clear('RP');" in the javascript function as susggested in above url, but doen't work. any examples are appreciated.
    thanks,
    Surya

  • Server Exception during PPR

    Hi. I use JDeveloper 11g and JHeadstart. I work with ADF BC Technology. I have custom base java classes. After adding new record in table, I receive this message on one of my pages: "0 For more information, please see the server's error log for an entry beginning with: Server Exception during PPR".
    I tried more times to find out it's reason but...
    And I found the following message at server log:
    ------------> doDML Method
    04/11/2009 08:42:06 ص org.apache.myfaces.trinidadinternal.context.RequestContextImpl addPartialTriggerListeners
    WARNING: Could not find partial trigger Item from RichNavigationPane[UIXFacesBeanImpl, id=Menu2]
    04/11/2009 08:42:06 ص oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator handleError
    SEVERE: Server Exception during PPR, #1
    java.lang.ArrayIndexOutOfBoundsException: 0
         at oracle.adf.model.binding.DCIteratorBinding.reserveRowWithKey(DCIteratorBinding.java:3798)
         at oracle.jbo.uicli.binding.JUIteratorBinding.reserveRowWithKey(JUIteratorBinding.java:482)
         at oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.setupRegionIteratorBinding(JUCtrlHierNodeBinding.java:1923)
         at oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.getRegionBinding(JUCtrlHierNodeBinding.java:1884)
         at oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.getBindings(JUCtrlHierNodeBinding.java:1740)
         at oracle.jbo.uicli.binding.JUCtrlHierNodeBinding.internalGet(JUCtrlHierNodeBinding.java:1362)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierNodeBinding.internalGet(FacesCtrlHierNodeBinding.java:122)
         at oracle.adf.model.binding.DCControlBinding.get(DCControlBinding.java:742)
         at oracle.adfinternal.view.faces.model.HierNodeBindingELResolver.getValue(HierNodeBindingELResolver.java:52)
         at oracle.adfinternal.view.faces.model.AdfELResolver.getValue(AdfELResolver.java:86)
         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
         at com.sun.el.parser.AstValue.getTarget(AstValue.java:82)
         at com.sun.el.parser.AstValue.isReadOnly(AstValue.java:126)
         at com.sun.el.ValueExpressionImpl.isReadOnly(ValueExpressionImpl.java:230)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.getReadOnly(EditableValueRenderer.java:400)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.wasSubmitted(EditableValueRenderer.java:341)
         at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.decodeInternal(EditableValueRenderer.java:113)
         at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.decodeInternal(LabeledInputRenderer.java:55)
         at oracle.adf.view.rich.render.RichRenderer.decode(RichRenderer.java:241)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.__rendererDecode(UIXComponentBase.java:1107)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decode(UIXComponentBase.java:701)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processDecodes(UIXComponentBase.java:802)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.processDecodes(UIXEditableValue.java:236)
         at org.apache.myfaces.trinidad.component.ChildLoop$Decode.process(ChildLoop.java:94)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:55)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:48)
         at org.apache.myfaces.trinidad.component.UIXColumn.processDecodes(UIXColumn.java:80)
         at oracle.adf.view.rich.component.rich.data.RichColumn.processDecodes(RichColumn.java:249)
         at org.apache.myfaces.trinidad.component.UIXCollection.processComponent(UIXCollection.java:950)
         at org.apache.myfaces.trinidad.component.TableUtils$3.process(TableUtils.java:283)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:55)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:48)
         at org.apache.myfaces.trinidad.component.TableUtils.__processStampedChildren(TableUtils.java:278)
         at org.apache.myfaces.trinidad.component.UIXTable._processStamps(UIXTable.java:518)
         at org.apache.myfaces.trinidad.component.UIXTable.processFacetsAndChildren(UIXTable.java:374)
         at org.apache.myfaces.trinidad.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:196)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:974)
         at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:190)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$ApplyRequestValuesCallback.invokeContextCallback(LifecycleImpl.java:1150)
         at org.apache.myfaces.trinidad.component.UIXCollection.invokeOnComponent(UIXCollection.java:1024)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnNamingContainerComponent(UIXComponentBase.java:1362)
         at org.apache.myfaces.trinidad.component.UIXDecorateCollection.invokeOnComponent(UIXDecorateCollection.java:121)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(ContextSwitchingComponent.java:188)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:123)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnNamingContainerComponent(UIXComponentBase.java:1362)
         at oracle.adf.view.rich.component.fragment.UIXRegion.invokeOnComponent(UIXRegion.java:529)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(ContextSwitchingComponent.java:188)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:123)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
         at oracle.adf.view.rich.component.rich.RichDocument.invokeOnComponent(RichDocument.java:159)
         at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:731)
         at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:301)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.jheadstart.controller.jsf.AuthenticationFilter.doFilter(AuthenticationFilter.java:284)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    Hi Frank,
    Thank you for your answer.
    I investigated the problem a bit and my main concern is how do I get to display an error page?
    As stated in my first post, the exception arise during a PPR/Ajax request. So when the request comes back, some javascript code handles the response which in this case has a 500 status code. Even though I configure the web container to display an error page when there's a 500 error, i'm pretty sure it won't show up.
    So, is there any way to change this behavior? Is there any javascript hook that gets callbacked when a PPR/Ajax request completes?
    Thanx!
    Olivier

  • Post construct and PPR in Jdev 11.1.1.1

    PPR works like full reresh at the background.
    Is there anyway to prevent @postconstrunct method execute or ech partial triger.
    We want it execute just for full refresh.
    Thanks.

    Hi,
    its the scope that decides when a bean gets instantiated. It has less to do with whether the request is for a full refresh or partial refresh. Though there is an Ajax XHTTP request, there is no notion in Java EE , and this is where your annotation is coming from, to distinguish requests.
    On JDev 11g you can use adfFacesContext.isPartialRequest(FacesContext.getCurrentInstance());
    to determine if the request is a full page refresh or not. You may want to try this option in the post construct method to ignore the code content
    Frank

  • Template: 13. Standard (PPR) and column sorting

    When I use the template "template: 13. Standard (PPR)" and have column sorting setup for that region, I get the following script error when accessing my app and try to sort on a column.
    missing ) after argument list
    html_PPR_Report_Page(this,'R142222838802...3829',false,false,false,'fsp_sort_7')');
    Have other seen this error too? The work around for me is to not use the PPR template.
    Regards,
    Todd

    Hello,
    PPR (Partial Page Refresh) is just a term used to describe some AJAX pagination and sorting functionality, it's just a holdover from before the term AJAX existed.
    You can just change the template and on your report to enable that functionality. In 3.0 it will just be on off switch in your pagination options.
    Carl
    Message was edited by:
    Carl Backstrom

  • Dynamic PPR in ADF Tree

    Is it possible to dynamically add a partial target to be rendered in the subsequent response in ADF Tree?
    Say for example I have a tree as follows:
    Root
    - Child 1
    - Child 1.1
    - Child 1.2
    - Child 1.3
    - Child 2
    - Child 2.1
    - Child 2.2
    Now I would like to re-render ONLY "Child 2.2" when "Child 1.3" is updated via "autoSubmit" or "f:ajax". Note the knowledge of the "node to be rendered" is not available during design time, i.e. it is only dynamically known when a value is being set in "Child 1.3" or for that fact any other node.
    I could bind the component to a UIComponent and then use "context.addPartialTarget(UIComponent)" but the way that I see it, component binding is a view build time process and when the tree nodes are being rendered, it uses the same UIComponent instance to render each of the nodes and would try to fetch each of the visible node and see whether a change has been made and partially render it accordingly on the condition whether it has been changed or not. I need a mechanism in which if I change "Child 1.3" and it specifies to partially re-render "Child 2.2", it shoud ONLY re-render child 2.2 and not any other node whatsoever.
    Is this currently possible? Moreover are <f:ajax> and ADF PPR interoperable?

    Glad to know the answer. Thank you. :)
    Here's a suggestion which is inline with JSF
    JSF 2.0 (or was it 1.2) defines PartialViewContext which has it's roots with <f:ajax>. PartialViewContext basically states all the client ID's which will be re-rendered durig this process with a mutable getRenderIds() collection (although it's mutable, it's not specified in the docs whether changing it will lead to actual changing of the list or not. It works for the Mojarra implementation in WLS 12.1 (Mojarra 2.1.5) but was not working in 10.3.5 (Mojarra 2.0.9). In any case I can always override the PartialViewContextFactory to provide a wrapper of PartialViewContext which supports mutating). What I would like to propose is that since I can dynamically state client ID's which needs to be re-rendered, I can state the client ID's of the node components and they be rendered accordingly. This would be very helpful since in our current implementation we were hoping to have a very optimized implementation of af:tree which could be having several nodes and each node can change depending upon a change in any other subsequent node.
    I have tried this new method and it works like a charm with other ADF components including components within iterators and switchers, howsoever it failed to work inside a tree. It would actually be a good addition/fix.
    Thank you once again.

  • Debugging a PPR error

    I'm trying to solve a Partial Page Rendering problem and need a strategy for debugging. I'm using JDeveloper 11.1.1.1
    The problem appears when a disclosureListener is added to a af:showDetailItem component. The component has no
    children. The parent component is af:panelTabbed component.
    I've added the usual System.out.println() statements to the backing bean method which receives a DisclosureEvent
    from the af:showDetailItem component. No method print messages appear in the log.
    The log has EmptyStackException and a java call trace, but all the classes in the trace appear to ADF life cycle classes.
    I've pasted the stacktrace below.
    What kind of strategies can be used to find a PPR problem? ...are there ADF life cycle events, AJAX events or browser
    events that can be monitored? ...can other ADF components in a jspx page interfere with PPR?
    Thanks for any suggestions or ideas.
    Apr 8, 2010 10:06:41 AM oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator handleError
    SEVERE: Server Exception during PPR, #1
    java.util.EmptyStackException
         at java.util.Stack.peek(Stack.java:85)
         at oracle.adfinternal.controller.state.BackingBeanScopeProviderImpl$BackingBeanData.getCurrent(BackingBeanScopeProviderImpl.java:106)
         at oracle.adfinternal.controller.state.BackingBeanScopeProviderImpl.getCurrentScope(BackingBeanScopeProviderImpl.java:56)
         at oracle.adfinternal.controller.application.AdfcELResolver.getValue(AdfcELResolver.java:57)
         at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
         at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
         at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
         at com.sun.el.parser.AstValue.getTarget(AstValue.java:63)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:153)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1282)
         at org.apache.myfaces.trinidad.component.UIXShowDetail.broadcast(UIXShowDetail.java:154)
         at oracle.adf.view.rich.component.rich.layout.RichShowDetailItem.broadcast(RichShowDetailItem.java:162)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:787)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:280)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

    first thing first - if possible, please consider using web server 7 update 1. you can get the bits from here -
    http://www.sun.com/download/products.xml?id=467713d6
    and here is a useful link
    http://blogs.sun.com/arvind/entry/can_i_use_struts_with
    web server 7 update 1 is more compatible with tomcat 5 / 6 compared to web server 6.1
    now, with respect to the issue that you are running into , from the logs it seems that web server 6.1 is trying to serve the static content within the web container rather than let web server core serve the static content and is unable to do so hence you are running into the bad request issue.
    this is most likely a mis configuration issue. how does your obj.conf look ? can you attach a snippet of the top few lines.

  • Firefox 6.0.2 keeps on crashing, problems with ajax calls

    Hi,
    I am using the jquery form plugin to make ajax calls on my sites, when i invoke the plugin and have Firebug open I get this message:
    Could not convert JavaScript argument arg 0 [nsISupports.QueryInterface]
    [Break On This Error] callback.data = aElem....getComputedStyle(callback.data, '');
    rfhelper32.js
    Firebug also tells me that it's limit has been reached 1571 entries shown.
    Can someone tell me why this is happening; is there a problem with Firefox that will be fixed. It's not happening in IE9
    Here is the information from a recent crash report (which may or not be related to the above problem!)
    AdapterDeviceID: 0a66
    AdapterVendorID: 10de
    Add-ons: [email protected]:3.0.4,{6AC85730-7D0F-4de0-B3FA-21142DD85326}:2.5.5,{8f8fe09b-0bd3-4470-bc1b-8cad42b8203a}:0.17,{e968fc70-8f95-4ab9-9e79-304de2a71ee1}:0.7.3,{f36c6cd1-da73-491d-b290-8fc9115bfa55}:2.2.0,{BBDA0591-3099-440a-AA10-41764D9DB4DB}:3.1,[email protected]:1.8.2,{2D3F3651-74B9-4795-BDEC-6DA2F431CB62}:2011.7.1.3,{972ce4c6-7e08-4474-a285-3208198ce6fd}:6.0.2
    AvailableVirtualMemory: 174600192
    BuildID: 20110902133214
    CrashTime: 1316093326
    EMCheckCompatibility: true
    Email: [email protected]
    FramePoisonBase: 00000000f0de0000
    FramePoisonSize: 65536
    InstallTime: 1315406279
    Notes: AdapterVendorID: 10de, AdapterDeviceID: 0a66, AdapterDriverVersion: 8.16.11.9104
    D3D10 Layers? D3D10 Layers-
    D3D9 Layers? D3D9 Layers-
    WebGL? WebGL-
    ProductName: Firefox
    ReleaseChannel: release
    SecondsSinceLastCrash: 160793
    StartupTime: 1316067225
    SystemMemoryUsePercentage: 86
    Theme: classic/1.0
    Throttleable: 1
    TotalVirtualMemory: 2147352576
    URL: https://s-static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f1ae6be54ac01b4&origin=https%3A%2F%2Fwww.paypal-business.co.uk%2Ffd558408b2cb6c&relation=parent.parent&transport=postmessage&type=resize&height=20&ackData[id]=1&width=250
    Vendor: Mozilla
    Version: 6.0.2
    Winsock_LSP: MSAFD Tcpip [TCP/IP] : 2 : 1 :
    MSAFD Tcpip [UDP/IP] : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD Tcpip [RAW/IP] : 2 : 3 :
    MSAFD Tcpip [TCP/IPv6] : 2 : 1 : %SystemRoot%\system32\mswsock.dll
    MSAFD Tcpip [UDP/IPv6] : 2 : 2 :
    MSAFD Tcpip [RAW/IPv6] : 2 : 3 : %SystemRoot%\system32\mswsock.dll
    RSVP TCPv6 Service Provider : 2 : 1 :
    RSVP TCP Service Provider : 2 : 1 : %SystemRoot%\system32\mswsock.dll
    RSVP UDPv6 Service Provider : 2 : 2 :
    RSVP UDP Service Provider : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip_{91C733AA-510D-41D3-B67A-4441103BAE50}] SEQPACKET 1 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip_{91C733AA-510D-41D3-B67A-4441103BAE50}] DATAGRAM 1 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip_{4A8E4D1C-24D8-40C3-BC41-D04B5D505F39}] SEQPACKET 5 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip_{4A8E4D1C-24D8-40C3-BC41-D04B5D505F39}] DATAGRAM 5 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip_{C8F77A1D-B3A2-4DE2-AE72-C377BBD10D9A}] SEQPACKET 7 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip_{C8F77A1D-B3A2-4DE2-AE72-C377BBD10D9A}] DATAGRAM 7 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{C8F77A1D-B3A2-4DE2-AE72-C377BBD10D9A}] SEQPACKET 8 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{C8F77A1D-B3A2-4DE2-AE72-C377BBD10D9A}] DATAGRAM 8 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{4A8E4D1C-24D8-40C3-BC41-D04B5D505F39}] SEQPACKET 6 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{4A8E4D1C-24D8-40C3-BC41-D04B5D505F39}] DATAGRAM 6 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{3D95D40E-1835-44C6-A621-968094D90452}] SEQPACKET 10 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{3D95D40E-1835-44C6-A621-968094D90452}] DATAGRAM 10 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{D6AD3B6C-2F8E-49B4-BDCD-DB35518116E7}] SEQPACKET 9 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{D6AD3B6C-2F8E-49B4-BDCD-DB35518116E7}] DATAGRAM 9 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{18908ACF-76C1-4139-8C1C-89DF049156C5}] SEQPACKET 4 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{18908ACF-76C1-4139-8C1C-89DF049156C5}] DATAGRAM 4 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{4112C824-372C-4014-87AE-1BC13EA6E4CD}] SEQPACKET 3 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{4112C824-372C-4014-87AE-1BC13EA6E4CD}] DATAGRAM 3 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{2E408326-9611-4C41-B766-C4CB82734986}] SEQPACKET 0 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{2E408326-9611-4C41-B766-C4CB82734986}] DATAGRAM 0 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{91C733AA-510D-41D3-B67A-4441103BAE50}] SEQPACKET 2 : 2 : 5 :
    MSAFD NetBIOS [\Device\NetBT_Tcpip6_{91C733AA-510D-41D3-B67A-4441103BAE50}] DATAGRAM 2 : 2 : 2 : %SystemRoot%\system32\mswsock.dll
    VMCI sockets DGRAM : 0 : 2 :
    VMCI sockets STREAM : 0 : 1 : C:\Program Files\VMware\VMware Workstation\vsocklib.dll
    This report also contains technical information about the state of the application when it crashed.

    Try the Firefox SafeMode to see how it works there. <br />
    ''A troubleshooting mode, which disables most Add-ons.'' <br />
    ''(If you're not using it, switch to the Default Theme.)''
    * You can open the Firefox 4/5/6/7 SafeMode by holding the '''Shft''' key when you use the Firefox desktop or Start menu shortcut.
    * Or use the Help menu item, click on '''Restart with Add-ons Disabled...''' while Firefox is running. <br />
    ''Don't select anything right now, just use "Continue in SafeMode."''
    ''To exit the Firefox Safe Mode, just close Firefox and wait a few seconds before using the Firefox shortcut (without the Shft key) to open it again.''
    If it is good in the Firefox SafeMode, your problem is probably caused by an extension, and you need to figure out which one. <br />
    http://support.mozilla.com/en-US/kb/troubleshooting+extensions+and+themes

  • Need to find professional income tax preparation software, capable of handling 1065, 1120, 1041, 990, etc. preferably PPR compatible with Mac's OS

    Need to find pro tax prep software compatible w/Macs. My software maker, Drake, does not have Mac version. I've checked Pro-Series (no) and maybe 1 other. I don't want to spend Lacert kind of $$ (neither do the majority of longtime Lacert users apparently). Obviously, no Turbo Tax, Tax Cut or any other commercial, deduction & crdit missing commercial software. They would ned to have the ability to 1) convert a few years of Drake to their program, 2) Covert files created on PC to files that 10 OS could use. Also, would like them to have reasonable PPR program, free efile, free unlimited states, capable of 1040, 1065, 1120, & (S), 1041, 990. Built in tax knowledge base. I'd be eternally indebted to you if you found sometghing as intuitive and value oriented as Drake but for OS 10. BEGINNING TO THINK APPLE bends over backwords for artistic tools but not so much business tools. Too bad, I've had a few tax returns that have bordered on art.
    I will likely need to add Parallels & Windows 7 OS, preferably 64-bit to this Macbook Air. If so, I do not think I have sufficient memory or storage so would like to download & install onto NFTS (sp?) formatted 1TB HD. I do not know if hard drives, USB hubs, Optical drives etc. that work w/ Windows (as long as you choose correctly btwn SATA & IDE) will work on MacBook Air. Help greatly appreciated. So if you happen to know any pro tax prep software ompatible w/ OS 10 and/or, you could give me some info on what characteristics peripherals would need to have to use on MacBook (I'm hoping that most are inrterchanheable but my hoping ain't gonna make it so. OR if you know any great deals on Parallel-I saw some promos but not from reliable places. If I could find on Bradsdeals or Coupon Cabin I'd feel safe. I've seen  an Apple ad for a bundle of software w/ some other decent parts (Snagit) . I'd love to find a promo that applies to the bundle and download all 9programs for $9.99 (right). Too many questions, sorry for any protocol violations.  As you might have noticed, a keyboard is high on my agenda- I hate laptop keyboards though Apple's seems better than most. I also hate using scroll pads. Much rather have mouse. Real challenge is to find Bluetooth OS 10 keybrd that has numeric keypad. I wonder if the financial dept. @ apple uses keyboards w/ no numeric keypad, saw one that started at $99. I spent all the $$ I have on a MacBook, none leftover for overpriced peripherals, esp. w/ 2 kidfs going off to college in Sept.
    Thanks for allowing me to whine & ramble. Feel free to call me on any breach of protocol as I am 1st time poster.
    Thanks for your time and consideration, I HOPE I'M CORRECT IN MY GUT FEELING THAT I've joined the forces for good by switching. Too many PCs ruined by malware.
    Bill S

    Bill I've also run into a very similar problem, I own many Macs but I've had a PC for Tax Stuff. My PC broke and I refused to buy another one so I began to search for an alternative. Window's Emulators have given me so much trouble with my Tax Software.
    However, I've since found out that Intuit has a cloud based tax solution that works with a MAC because it's all done online. Which means you'll need a reliable internet connection whenever you want to prepare a client's return.
    It's suppose to support all of the major returns (1040, 1041, 1065, 1120, 1120S and 990)
    I've yet to use this solution, but it's the best thing that I've been able to find so far. This is what I'll be using this upcoming Tax Season.
    So I figured that it would be worth mentioning. Good Luck!
    http://accountants.intuit.com/tax/online/?s_cid=SEM&s_ev1=SEM_TOE_Brand_Lower-ke yword_proline_tax_online

  • Error message when trying to sign in to HP ePrint "ajax submit failed: error = 403, forbidden"

    HP Photosmart 7525
    Windows 7
    Ajax submit failed: error = 403, Forbidden
    Installed new printer: Photosmart 7525
    I am trying to set up my ePrint account and add my printer and it won't let me sign in or create a new account.
    Thanks for your help!
    Deb
    This question was solved.
    View Solution.

    One can also restart the computer.After it shuts down leave it off for at least a minute and then reattempt access the site once computer is back on and running. I would also check to make sure that Java is up to date and that Adobe Flash is up to date. 
    I am a former employee of HP...
    How do I give Kudos?| How do I mark a post as Solved?

  • Input Text in a row of a table is not getting focused after PPR

    Hi All,
    I have a use case where the form will have a table and one of the columns will have inputtext and the other column will have outputtext. Once the user enters some data in inputtext and presses the down arrow, i am using autosubmit and valuechangelistener to call some method in bb which will show popup in the page. And after selecting some value from popup, i close the popup by setting the first row's outputtext with some data and wants to make the cursor focus to the next row's inputtext.
    Its working without PPR, but when we use PPR to set the outputtext component, its failing the focus is getting lost. Any ideas would be helpful.
    Regards,
    N

    Hi,
    Check following will helpul
    http://blogs.oracle.com/jdevotnharvest/entry/how_to_programmatically_set_focus

Maybe you are looking for

  • Help needed ,,, server crashing

    Hi I am facing one problem in Weblogic server, when I am trying to view on page. We have a requirement where we need to add some fields on the JSP page all the fields are input fields where user provided values in textboxes and radio buttons. We are

  • Non-static variable in multithreaded servlet

    I have a multithreaded servlet and a counter variable to keep count of when each thread finishes executing. I have set the variable to be a static integer. The problem is that the counter variable persists across requests whereas I want it to reset w

  • Can you toggle open/close javascript:ColdFusion.navigate?

    I'm looking for a way to toggle open/close a table row within a search query.  I have a table of results and a link to more detailed information. I would like that page to stay within the current page.  I have the ColdFusion.navigate working correctl

  • Changed DSN in connection object but reports still use value from old DSN

    We're running BObj XIr2 SP4 and have both WEBI and DESKI reports. Most of our DESKI reports have two data providers, one from a universe (header/footer info) and one for free-hand SQL (report data). We are testing in preparation to upgrading all our

  • 3.01 Text underlined bug.

    I designed a site using 2.04 and it looked fine after publishing it to idisk. I was so impressed that I went out and bought iLife '09. After updating to OSX 10.5.6 and working in iweb 3.01, about 50% of my text was now UNDERLINED when published! I tr