
好的,这就是我在Spring 2.5中使用ajax的方式
public class AjaxController extends MultiActionController { // injected services, daos here public ModelAndView getAjaxData(HttpServletRequest request, HttpServletResponse response) throws Exception { String data = // construct your ajax response here - string, json, xml etc model.put("data", data); return new ModelAndView("ajax_foo", model); } public ModelAndView anotherMethod(HttpServletRequest request, HttpServletResponse response) throws Exception { String data = // construct your ajax response here - string, json, xml etc model.put("data", data); return new ModelAndView("ajax_foo", model); }}然后您需要ajaxView来编写ajax数据以进行响应
public class AjaxView extends AbstractView { @Override protected void renderMergedOutputModel(Map map, HttpServletRequest request, HttpServletResponse response) throws Exception { String ajaxResponse = map.get("data"); response.setContentType("text/plain; charset=UTF-8"); response.getOutputStream().write(ajaxResponse.getBytes());}查看解析器以解决Ajax调用
public class AjaxViewResolver extends AbstractCachingViewResolver { private String ajaxPrefix; private View ajaxView; @Override protected View loadView(String viewName, Locale locale) throws Exception { View view = null; if (viewName.startsWith(this.ajaxPrefix)) { view = ajaxView; } else { } return view; } public void setAjaxPrefix(String ajaxPrefix) { this.ajaxPrefix = ajaxPrefix; } public void setAjaxView(View ajaxView) { this.ajaxView = ajaxView; }}网址映射,将ajax网址映射到ajax控制器
<bean id="simpleUrlMapping" > <property name="mappings"> <props> <prop key="/getAjaxData.htm">ajaxController</prop> <prop key="/anotherMethod.htm">ajaxController</prop> </props> </property></bean>
控制器具有bean ajaxResolver作为methodNameResolver,例如,控制器具有一些服务或dao
<bean name="ajaxController" > <property name="service" ref="service"/> <property name="dao" ref="dao"/> <property name="methodNameResolver" ref="ajaxResolver"/> </bean>
方法名称解析器
<bean id="ajaxResolver" > <property name="mappings"> <props> <prop key="/getAjaxData.htm">getAjaxData</prop> <prop key="/anotherMethod.htm">anotherMethod</prop> </props> </property> </bean>
从AjaxController返回modelAndView时,Ajax View解析器调用您的Ajax视图
<bean id="ajaxViewResolver" > <property name="ajaxView"> <bean /> </property> <property name="ajaxPrefix" value="ajax_"/> </bean>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)