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