Handler编写调试
来源:互联网 发布:ubuntu解压缩zip 编辑:程序博客网 时间:2024/06/03 20:18
配置处理器映射器
在classpath:springmvc.xml中配置处理器映射器、处理器适配器、视图解析器。
三者顺序无所谓。注意dispatcherServlet.xml的约束。
<1>配置处理器适配器和处理器映射器
下面内容引自https://my.oschina.net/HeliosFly/blog/205343
<!-- 开启注解 --> <!-- springmvc使用<mvc:annotation-driven> --> <!-- 自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter, --> <!-- 可用在springmvc.xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。 --> <mvc:annotation-driven/>
mvc:annotation-driven注解解读
通常如果我们希望通过注解的方式来进行Spring MVC开发,我们都会在*-servlet.xml中加入标签来告诉Spring我们的目的。但是我们为什么这么做呢?这个标签是什么意思呢?它做了什么呢?
同样为了弄清楚这些问题, 我们先找到它的解析类。所有的自定义命名空间(像mvc,context等)下的标签解析都是由BeanDefinitionParser接口的子类来完成的。
我们看到有多个AnnotationDrivenBeanDefinitionParser,他们是用来处理不同命名空间下的标签的,我们今天研究的是标签,所以我们找到对应的实现类是org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser。
通过阅读类注释文档,我们发现这个类主要是用来向工厂中注册了
//两个处理器映射器,HandlerMapping接口的实现类,用来处理请求映射的//第一个是处理@RequestMapping注解的RequestMappingHandlerMapping//第二个会将controller类的名字映射为请求urlBeanNameUrlHandlerMapping//三个处理器适配器,都实现HandlerAdapter接口,确定调用哪个controller的哪个方法来处理当前请求//第一个处理@Controller注解的处理器,支持自定义方法参数和返回值(很酷)RequestMappingHandlerAdapter//第二个是处理继承HttpRequestHandler的处理器HttpRequestHandlerAdapter//第三个处理继承自Controller接口的处理器SimpleControllerHandlerAdapter//后面三个是用来处理异常的解析器ExceptionHandlerExceptionResolverResponseStatusExceptionResolverDefaultHandlerExceptionResolver
上面几个Bean实例。这几个类都是用来做什么的呢?
前两个是HandlerMapping接口的实现类,用来处理请求映射的。其中第一个是处理@RequestMapping注解的。第二个会将controller类的名字映射为请求url。
中间三个是用来处理请求的,即三个处理器适配器。具体点说就是确定调用哪个controller的哪个方法来处理当前请求。
第一个处理@Controller注解的处理器,支持自定义方法参数和返回值(很酷)。
第二个是处理继承HttpRequestHandler的处理器。
第三个处理继承自Controller接口的处理器。
后面三个是用来处理异常的解析器。
<2>配置handler
开发handler时要按照HandlerAdapter的要求开发
@Controller@RequestMapping(value = "/student", method = {RequestMethod.GET, RequestMethod.POST})public class StudentController { @RequestMapping(value = "/student", method = {RequestMethod.GET, RequestMethod.POST}) public ModelAndView student(){ return new ModelAndView("student", "insertDTO", new Student()); } @RequestMapping(value = "/addStudent", method = {RequestMethod.GET, RequestMethod.POST}) public String addStudent(@ModelAttribute("insertDTO")Student student, ModelMap model){ //相当于request.setAttribute(...),在jsp页面通过name取值 model.addAttribute("name", student.getName()); model.addAttribute("id", student.getId()); model.addAttribute("age", student.getAge()); return "result"; }}
<3>配置视图解析器
需要配置解析jsp的视图解析器
<!--ViewResolver 视图解析器--> <!--用于支持Servlet、JSP视图解析--> <!-- 配置视图解析器 --> <!-- InternalResourceViewResolver:支持JSP视图解析 --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,所以classpath中必须包含jstl的相关jar包; --> <!-- prefix 和suffix:查找视图页面的前缀和后缀,最终视图地址为:前缀+逻辑视图名+后缀, 逻辑视图名需要在controller中返回ModelAndView指定, 比如逻辑视图名为hello,则最终返回的jsp视图地址 "WEB-INF/jsp/hello.jsp" --> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
- Handler编写调试
- SpringMVC 入门 -- Handler编写
- 编写和调试程序
- javascript的编写、调试
- 不用编写客户端调试WebServices
- 不用编写客户端调试WebServices
- 驱动编写与调试(1)
- 驱动编写与调试(2)
- 驱动编写与调试(3)
- 驱动编写与调试(4)
- 驱动编写与调试(5)
- 驱动编写与调试(6)
- 不用编写客户端调试WebServices
- 编写及调试PL/SQL
- 编写方便调试的系统
- C编写的调试宏
- OC编写使用调试器
- 编写、调试linux常用命令杂记
- Linux查看系统信息的一些命令及查看已安装软件包的命令
- 水体提取方法之单波段阈值法升级版
- Same Tree
- JPEG文件格式
- HashMap的用法(两种迭代方法案例)
- Handler编写调试
- 读书笔记--迪米特法则
- SpringMVC整合JPA
- css Js 多余部分显示省略号
- 十进制和二进制的相互转换
- mysql处理海量数据时的一些优化查询速度方法
- 反编译pyc得到python源码
- 指针与引用
- 一幅图理解计算机系统硬件组成