springMVC_ajax
- 两种方式交互方式,
一种是发送一个请求数据,返回一个响应的标识数据
一种是获取一个集合的JSON格式数据
- 需导入新的jar包(jar包在备课/lib下面)
jackson-annotations.jar
jackson-core.jar
jackson-databind.jar
- jquery-1.8.2.js 导入插件
- 页面和控制器代码
敲代码之前要配json转换器(jackson)
配置json解析器
<!-- 配置支持JSON格式的转换器 -->
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
</list>
</property>
</bean>
多模块开发
不同于struts2的package里面进行包名的区分,是在controller上面加requestmapping进行区分
springMVC_interceptor
配置文件:
- /** 是拦截多层:http://localhost:8080/test_ssm/namespace/add3
/* 只拦截一层:http://localhost:8080/test_ssm/login
boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler):在请求到达Handler之前,先执行这个前置处理方法。当该方法返回false时,请求直接返回,不会传递到链中下一个拦截器,更不会调用处理器链末端的Handler中,只有返回true时请求才向链中的下一个处理节点传递。
void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView):在请求被HandlerAdapter执行后,执行这个后置处理方法。
void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex):在响应已经被渲染后,执行该方法。
注意点:
执行的时候注意执行链条的顺序:
>1. preHandleOne
2. preHandleTwo
3. postHanleTwo
4. postHanleOne
5. afterComletionTwo
6. afterComletionOne
拦截器的xml配置要在手册里面找, 且要慢慢找。
< mvc:exclude-mapping/>设置不拦截的方法
restful风格
格式改成这样
< url-pattern>/ 会匹配到/login这样的路径型url,不会匹配到模式为.jsp这样的后缀型url。即:.jsp不会进入spring的 DispatcherServlet类 。!但是js,css,image 这类的静态资源依旧会被拦截, 所以要进行放行
< url-pattern>/ 会匹配所有url:路径型的和后缀型的url(包括/login,.jsp,.js和.html等),会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报
口述总结篇
1.把集合转成一个js的对象数组
1)导入jar包
2)添加json的转换器
3)写方法,造数据
1)在方法上面加一个@ResponseBody
2.标签
1)<mvc:resources>忽略静态资源
a)location:本地的路径
b)mapping:访问路径
3.namesapce
1)@RequestMapping可以加到类上的
4.拦截器
1)如何定义
a)要实现HandlerInterceptor
1)postHandle:视图解析器之前
1)afterCompletion:视图解析器之后
1)preHandle:调用Controller之前,返回true是放行
2)配置
1)<mvc:interceptors>
a)<mvc:interceptor>
1)<bean>:自定义拦截器的bean
2)<ref>:引向外面的bean
3)<mvc:mapping>:被拦截的路径
4)<mvc:exclude-mapping>:不被拦截的路径(写决定路径)
3)/*:只拦截一层
4)/**:可以拦截多层