have u checked this page

http://wiki.apache.org/myfaces/TrinidadSeamAjax4Jsf

On 7/9/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

I am trying to use Ajax4Jsf with Trinidad, Facelets, and JSF 1.2. (I am
considering using the RichRaces components as well) In my demo I have a
required text field, a check box and a set of fields that are enabled if the
checkbox is selected. I am trying to use ajax on the checkbox and only
refresh the fields that are associated with it.
 If the initial state of the page is that the box is not selected and the
fields are disabled, selecting the checkbox results in the following:

WARNING: executePhase(RENDER_RESPONSE
6,[EMAIL PROTECTED])
threw exception
java.lang.NullPointerException
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.EditableValueRenderer.addOnSubmitConverterValidators(EditableValueRenderer.java:206)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputTextRenderer.encodeAllAsElement(SimpleInputTextRenderer.java:105)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputListOfValuesRenderer.renderTextField(SimpleInputListOfValuesRenderer.java:197)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputListOfValuesRenderer.encodeAllAsElement(SimpleInputListOfValuesRenderer.java:154)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleInputDateRenderer.encodeAllAsElement(SimpleInputDateRenderer.java:194)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.FormElementRenderer.encodeAll(FormElementRenderer.java:109)
        at
org.apache.myfaces.trinidad.render.CoreRenderer.delegateRenderer(CoreRenderer.java:318)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.renderFieldCellContents(InputLabelAndMessageRenderer.java:142)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessageRenderer._renderFieldCell(LabelAndMessageRenderer.java:375)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.LabelAndMessageRenderer.encodeAll(LabelAndMessageRenderer.java:270)
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.encodeAll(InputLabelAndMessageRenderer.java:120)
        at
org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:208)
        at
org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:733)
        at
org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.java:286)
        at
org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase.java:262)
        at
org.ajax4jsf.renderkit.html.AjaxOutputPanelRenderer.encodeChildren(AjaxOutputPanelRenderer.java:79)
        at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        at
org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.java:282)
        at
org.ajax4jsf.framework.renderer.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:159)
        at
org.ajax4jsf.framework.renderer.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:97)
        at
org.ajax4jsf.framework.renderer.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:150)
        at
org.ajax4jsf.framework.renderer.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:97)
        at
org.ajax4jsf.framework.renderer.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:150)
        at
org.ajax4jsf.framework.renderer.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:125)
        at
org.ajax4jsf.framework.ajax.AjaxViewRoot.encodeAjax(AjaxViewRoot.java:549)
        at
org.ajax4jsf.framework.ajax.AjaxContext.renderAjaxRegion(AjaxContext.java:307)
        at
org.ajax4jsf.framework.ajax.AjaxContext$2.invoke(AjaxContext.java:222)
        at
org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnComponent(JsfOneOneInvoker.java:75)
        at
org.ajax4jsf.framework.ajax.AjaxContext.invokeOnComponent(AjaxContext.java:178)
        at
org.ajax4jsf.framework.ajax.AjaxContext.renderSubmittedAjaxRegion(AjaxContext.java:236)
        at
org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:256)
        at
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:208)
        at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:165)
        at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:138)
        at
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
        at
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:595)


Here is the facelet....

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
 <html xmlns="http://www.w3.org/1999/xhtml";
      xmlns:h="http://java.sun.com/jsf/html";
      xmlns:f="http://java.sun.com/jsf/core";
      xmlns:ui="http://java.sun.com/jsf/facelets";
      xmlns:tr="http://myfaces.apache.org/trinidad";
      xmlns:trh="http://myfaces.apache.org/trinidad/html";
      xmlns:a4j="https://ajax4jsf.dev.java.net/ajax";>
  <body>
    <form name="form" jsfc="h:form"  >
      <input id="custRef" type="text" jsfc="h:inputText"
        required="true" value="#{customer.custRef}"
        label="Customer reference"/><br/>

      <h:selectBooleanCheckbox name="hierBill" id="toSend2"
        value="#{customer.hierBill}">
        <f:selectItem itemLabel="Hierarchy Billing"
          itemValue="true"/>
        <a4j:support event="onclick" reRender="hierBillStuff"
ajaxSingle="true"/>
      </h:selectBooleanCheckbox>
      <a4j:outputPanel ajaxRendered="true">
        <h:messages/>
      </a4j:outputPanel>
      <a4j:outputPanel id="hierBillStuff">
        <label class="required">Bill period:</label><br/>
        <input type="text" name="billPer" size="10" id="billPer"
          jsfc="h:inputText" value="#{customer.billPeriod}"
          required="true"
disabled="#{!createCustBean.hierBill}"/>
        <select name="select" jsfc="h:selectOneListbox" size="1"
          id="billPerFreq"
          value="#{customer.billPeriodFreq}"
          required="true"
disabled="#{!createCustBean.hierBill}">
          <f:selectItems value="#{createCustBean.billPeriodFreqs}"/>
        </select>

        <label class="required">Next bill date:</label><br/>
        <tr:inputDate id="nextBillDate"
          value="#{customer.nextBillDate}"
          disabled="#{!createCustBean.hierBill}"
required="true" />

        <label class="required">Number of bills per statement:</label><br />
        <input type="text" name="numBills" id="numBills"
          jsfc="h:inputText" value="#{customer.numBills}"
          disabled="#{!createCustBean.hierBill}"
required="true"/>
      </a4j:outputPanel>
    </form>
    <ui:debug hotkey="p" rendered="#{initParam.debugMode}"/>
    <a4j:log hotkey="o"/>
  </body>
 </html>


The problem seems to be that the Trinidad EditableValueRender class (which
is the base class of the input field renderers) expects a reference to a
FormData object in a rendering context. The FormData object is established
in the context when the form element is rendered. In the suggested approach
of just rendering the affected fields the form component does not get
rerendered so as a result the FormData object reference does not get set and
therefore a null pointer results.

 It appears that Trinidad and Ajax4JSF are incompatible for this type of
thing.



--
Matthias Wessendorf

further stuff:
blog: http://matthiaswessendorf.wordpress.com/
mail: matzew-at-apache-dot-org

Reply via email to