XT Ajax XT.doAjaxSubmit problem
Hi
I am having problems getting doAjaxSumit to work as I keep getting:
UnsupportedEventException: Cannot handling the given event with id: loadBaseAssets
I have successfully used XT.doAjaxAction in my app and everything is ok. I wanted to call an event handler after the form submission which in fact I had already called successfully by doAjaxAction. Its probably a configuration error, but I can't see it.
Here is my code:
Spring config:
Code:
<bean id="fxstrikeoptimizerController" class="com.barcap.fx.web.controller.FxStrikeOptimizerController">
<property name="sessionForm"><value>true</value></property>
<property name="commandName"><value>strikeOptimizeCommand</value></property>
<property name="commandClass"><value>com.barcap.fx.bus.command.StrikeOptimizeCommand</value></property>
<property name="validator"><ref bean="strikeOptimizeValidator"/></property>
<property name="formView"><value>strike</value></property>
<property name="successView"><value>ajax-redirect:/strike.do</value></property>
<property name="cmd">
<ref bean="strikeOptimizeCommandBean"/>
</property>
<property name="webservice">
<ref bean="fXStrikeWebService"/>
</property>
</bean>
<bean id="ajaxInterceptor" class="org.springmodules.xt.ajax.AjaxInterceptor">
<property name="handlerMappings">
<props>
<prop key="/strike.do">ajaxStrikeHandler</prop>
</props>
</property>
</bean>
My ajax handler class contains multiple handlers all of which work when called by a doAjaxAction, but when I try to call one of them with
Code:
XT.doAjaxSubmit('loadBaseAssets', this);
I get the following exception
Code:
2007-07-06 12:47:42,472 INFO [org.springmodules.xt.ajax.AjaxInterceptor] - Post-handling ajax request for event: loadBaseAssets
2007-07-06 12:47:42,472 ERROR [org.springmodules.xt.ajax.AjaxInterceptor] - Cannot handling the given event with id: loadBaseAssets
org.springmodules.xt.ajax.support.UnsupportedEventException: Cannot handling the given event with id: loadBaseAssets
at org.springmodules.xt.ajax.AjaxInterceptor.postHandle(AjaxInterceptor.java:245)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:863)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
2007-07-06 12:47:42,488 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/FXStrikeOptimizer].[fxstrikeoptimizerapp]] - Servlet.service() for servlet fxstrikeoptimizerapp threw exception
org.springmodules.xt.ajax.support.UnsupportedEventException: Cannot handling the given event with id: loadBaseAssets
at org.springmodules.xt.ajax.AjaxInterceptor.postHandle(AjaxInterceptor.java:245)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:863)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Any help greatly appreciated
thanks
Steve
Re XT Ajax XT.doAjaxSubmit problem
Hi Sergio,
Thanks for coming back.
Here is my handler code
Code:
public AjaxResponse loadBaseAssets(AjaxActionEvent event) {
logger.info("loadBaseAssets- Start");
String assetVal=(String)event.getParameters().get("asset");
logger.info("asset = "+assetVal);
StrikeOptimizeCommand cmd=(StrikeOptimizeCommand)event.getCommandObject();
String baseAsset=cmd.getBaseCCY();
logger.info("base = "+baseAsset);
// Create the component to render (a list of html option elements):
List options = getBaseAssetOptions(assetVal,cmd);
logger.info("new base = "+cmd.getBaseCCY());
event.setCommandObject(cmd);
// Create an ajax action for replacing the content of the "baseAssets" element with the components just created:
ReplaceContentAction BaseAssetsAction = new ReplaceContentAction("baseAssetsId", options);
// Create a concrete ajax response:
AjaxResponse response = new AjaxResponseImpl();
// Add the actions:
response.addAction(BaseAssetsAction);
logger.info("loadBaseAssets- end");
return response;
}
and JSP fragment:
Code:
<form:select path="baseCCY" id="baseAssetsId"
onchange="XT.doAjaxAction('loadMarketSpot', this, {'asset':assetId.value,'base':baseAssetsId.value,'tenor':tenorId.value});"
>
<form:option value="Please Select"/>
<form:option value="EUR"/>
<form:option value="GBP"/>
<form:option value="USD"/>
<form:option value="AUD"/>
<form:option value="CHF"/>
<form:option value="CAD"/>
<form:option value="JPY"/>
</form:select>
cheers
Steve