I asked, because I noticed on your stack there is only this ViewHandler

AjaxViewHandler (for ajax4jsf)

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

Yes, I did.  I followed all of the non-seam directions (since I am not using
seam).

[EMAIL PROTECTED] wrote on 07/09/2007 11:57:46 AM:


 > 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,org.apache.myfaces.trinidadinternal.context.
 > [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



--
Matthias Wessendorf

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

Reply via email to