Results 1 to 3 of 3

Thread: Webflow Ajax Partial Rendering

  1. #1
    Join Date
    Aug 2011
    Posts
    17

    Default Webflow Ajax Partial Rendering

    I am trying to implement partial page rendering using spring webflow and tiles.
    I am trying to use the booking sample included in the distribution
    Here are my configuration file.




    Code:
    <bean id="mvcViewFactoryCreator"
    		class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
    		<property name="viewResolvers" ref="tilesViewResolver" />
    	</bean>
    
    	<bean id="tilesViewResolver"
    		class="org.springframework.js.ajax.AjaxUrlBasedViewResolver">
    		<property name="viewClass"
    			value="org.springframework.webflow.mvc.view.FlowAjaxTilesView" />
    	</bean>
    Code:
    	 <bean id="tilesConfigurer"
            class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
            <property name="definitions">
            <value>/WEB-INF/tiles/views.xml</value>
            </property>
        </bean>
    Tiles configuation:

    Code:
     <definition name="hotelIndex" extends="mainTemplate">
    		<put-attribute name="content" value="test" />
    	</definition>
    	
        <definition name="test" template="/WEB-INF/jsp/index2.jsp">
            <put-attribute name="hotelSearchForm" value="/WEB-INF/jsp/testAjax1.jsp" />
        </definition>
    	
    	
    	<definition name="search" extends="mainTemplate">
    		<put-attribute name="content" value="/WEB-INF/jsp/search.jsp" />
    		</definition>
    and search.jsp

    <form:form modelAttribute="hotel" method="post" action="booking.htm" id="formid">

    Code:
    <input type="text" id="changeSearchLink"/>
    	
     
    <script type="text/javascript">
     	Spring.addDecoration(new Spring.AjaxEventDecoration({
    		elementId: "changeSearchLink",
    		event: "onclick",
    		formId: "formid",
    			popup: true,
    			params: {fragments: "hotelSearchForm"}
    	}));
    </script>
    
    <input type="hidden" name="_flowExecutionKey"
    				value="${flowExecutionKey}" />
    				</form:form>
    </body>
    </html>
    When the search page loads, it has a textbox and on clicking of the textbox i want to make an ajax call and the call gets placed but just before rendering i get an exception



    org.springframework.webflow.execution.FlowExecutio nException: Exception thrown in state 'search' of flow 'order-flow'
    [INFO] [talledLocalContainer] at org.springframework.webflow.engine.impl.FlowExecut ionImpl.wrap(FlowExecutionImpl.java:571)
    [INFO] [talledLocalContainer] at org.springframework.webflow.engine.impl.FlowExecut ionImpl.resume(FlowExecutionImpl.java:265)
    [INFO] [talledLocalContainer] at org.springframework.webflow.executor.FlowExecutorI mpl.resumeExecution(FlowExecutorImpl.java:169)
    [INFO] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.FlowHandle rAdapter.handle(FlowHandlerAdapter.java:183)
    [INFO] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.FlowContro ller.handleRequest(FlowController.java:174)
    [INFO] [talledLocalContainer] at org.springframework.web.servlet.mvc.SimpleControll erHandlerAdapter.handle(SimpleControllerHandlerAda pter.java:48)
    [INFO] [talledLocalContainer] at org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:790)
    [INFO] [talledLocalContainer] at org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:719)
    [INFO] [talledLocalContainer] at org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:644)
    [INFO] [talledLocalContainer] at org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:560)
    [INFO] [talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet .java:641)
    [INFO] [talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
    [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:306)
    [WARNING] [talledLocalContainer] Nov 7, 2011 12:11:53 AM org.apache.catalina.core.StandardWrapperValve invoke
    [WARNING] [talledLocalContainer] SEVERE: Servlet.service() for servlet [Booking Dispatcher Servlet] in context with path [/Booking-web] threw exception [Request processing failed; nested exception is org.springframework.webflow.execution.FlowExecutio nException: Exception thrown in state 'search' of flow 'order-flow'] with root cause
    [WARNING] [talledLocalContainer] java.lang.NullPointerException
    [WARNING] [talledLocalContainer] at org.springframework.js.ajax.tiles2.AjaxTilesView.r enderMergedOutputModel(AjaxTilesView.java:92)
    [WARNING] [talledLocalContainer] at org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:250)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.ServletMvc View.doRender(ServletMvcView.java:50)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.mvc.view.AbstractMvcVi ew.render(AbstractMvcView.java:187)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.engine.ViewState.rende r(ViewState.java:296)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.engine.ViewState.refre sh(ViewState.java:243)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.engine.ViewState.resum e(ViewState.java:221)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.engine.Flow.resume(Flo w.java:545)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.engine.impl.FlowExecut ionImpl.resume(FlowExecutionImpl.java:261)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.executor.FlowExecutorI mpl.resumeExecution(FlowExecutorImpl.java:169)
    [INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:619)
    [INFO] [talledLocalContainer] Caused by: java.lang.IllegalStateException: Exception occurred rendering view org.springframework.webflow.mvc.view.FlowAjaxTiles View: name 'search'; URL [search]
    [INFO] [talledLocalContainer] at org.springframework.webflow.mvc.view.AbstractMvcVi ew.render(AbstractMvcView.jmpl.java:261)
    [INFO] [talledLocalContainer] ... 25 more
    [INFO] [talledLocalContainer] Caused by: java.lang.NullPointerException
    [INFO] [talledLocalContainer] at org.springframework.js.ajax.tiles2.AjaxTilesView.r enderMergedOutputModel(AjaxTilesView.java:92)
    [INFO] [talledLocalContainer] at org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:250)
    [INFO] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.ServletMvc View.doRender(ServletMvcView.java:50)
    [INFO] [talledLocalContainer] at org.springframework.webflow.mvc.view.AbstractMvcVi ew.render(AbstractMvcView.java:187)
    [INFO] [talledLocalContainer] ... 30 more
    [WARNING] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.FlowHandle rAdapter.handle(FlowHandlerAdapter.java:183)
    [WARNING] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.FlowContro ller.handleRequest(FlowController.java:174)
    [WARNING] [talledLocalContainer] at org.springframework.web.servlet.mvc.SimpleControll erHandlerAdapter.handle(SimpleControllerHandlerAda pter.java:48)
    [WARNING] [talledLocalContainer] at org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:790)
    [WARNING] [talledLocalContainer] at org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:719)
    [WARNING] [talledLocalContainer] at org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:644)
    [WARNING] [talledLocalContainer] at org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:560)
    [WARNING] [talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet .java:641)
    [WARNING] [talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
    [WARNING] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:306)
    [WARNING] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:210)
    [WARNING] [talledLocalContainer] at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:240)
    [WARNING] [talledLocalContainer] at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:161)
    [WARNING] [talledLocalContainer] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:164)
    [WARNING] [talledLocalContainer] at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:100)
    [WARNING] [talledLocalContainer] at org.apache.catalina.valves.AccessLogValve.invoke(A ccessLogValve.java:541)
    [WARNING] [talledLocalContainer] at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:118)
    [WARNING] [talledLocalContainer] at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:383)
    [WARNING] [talledLocalContainer] at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:243)
    [WARNING] [talledLocalContainer] at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:188)
    [WARNING] [talledLocalContainer] at org.apache.tomcat.util.net.JIoEndpoint$SocketProce ssor.run(JIoEndpoint.java:288)
    [WARNING] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(ThreadPoolExecutor.java:886)
    [WARNING] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:908)
    [WARNING] [talledLocalContainer] at java.lang.Thread.run(Thread.java:619)


    I would appreciate if someone gives any input over this issue.

    Thanks

  2. #2
    Join Date
    Jul 2011
    Location
    Italy
    Posts
    14

    Default

    It seems like there was something wrong with your ties configuration. Have you defined in views.xml an attribute or template or whatever with the same name of the view-state?
    When you defined the transition have you defined a fragment to render on the transition in *-flow.xml? which name have you used to? Check firmly the tiles configuration and the flow declarations.

    @tarebor

  3. #3
    Join Date
    Aug 2011
    Posts
    17

    Default

    yes i have everything configured correctly.Looks like it is a bug with Spring 3 and Tiles 2.2.Which version are you using?

    https://jira.springsource.org/browse/SWF-1220

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •