Spring MVC系列:(2)视图解析器、URL映射器、适配器
2016-09-19 04:14
344 查看
1、默认的URL映射器、适配器和视图解析器
SpringMVC提供了默认的URL映射器、适配器和视图解析器。
在上一文中,springmvc-helloworld.xml内容如下:
上面的配置与下面的配置是一样的:
2、视图解析器InternalResourceViewResolver
作用:解析视图逻辑名对应的真实路径
ModelAndView对象中即可以封装真实视图路径名,也可以封装视图路径的逻辑名。
(1)修改Action类的代码
HelloWorldAction类的代码:
由原来的
完整的HelloWorldAction.java
(2)在配置文件中进行修改
springmvc-helloworld.xml内容添加如下部分:
完整的springmvc-helloworld.xml
3、映射器Mapping
【什么样的请求交给Action】
3.1、BeanNameUrlHandlerMapping
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping(核心)
将程序员定义的Action所对应的<bean>标签的name属性作为请求路径
3.2、SimpleUrlHandlerMapping
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
/delete.action和/update.action和/find.action请求路径都交由<bean>标签为id的Action,即
多个路径对应同一个Action
![](http://s2.51cto.com/wyfs02/M01/87/61/wKioL1fe9KXC4ghwAAMNGy1WFWQ684.gif)
4、适配器Adapter
Action实现Controller接口
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
SpringMVC提供了默认的URL映射器、适配器和视图解析器。
在上一文中,springmvc-helloworld.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <bean name="/helloworld.action" class="com.rk.web.action.HelloWorldAction"></bean> </beans>
上面的配置与下面的配置是一样的:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 控制器(程序员) --> <bean name="/helloworld.action" class="com.rk.web.action.HelloWorldAction"></bean> <!-- 映射器(框架) --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 适配器(框架) --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <!-- 视图解析器(框架) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean> </beans>
2、视图解析器InternalResourceViewResolver
作用:解析视图逻辑名对应的真实路径
ModelAndView对象中即可以封装真实视图路径名,也可以封装视图路径的逻辑名。
(1)修改Action类的代码
HelloWorldAction类的代码:
由原来的
modelAndView.setViewName("/jsp/success.jsp");改成
modelAndView.setViewName("success");
完整的HelloWorldAction.java
package com.rk.web.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class HelloWorldAction implements Controller { public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", "这是我的第一个SpringMVC应用"); modelAndView.setViewName("success"); return modelAndView; } }
(2)在配置文件中进行修改
springmvc-helloworld.xml内容添加如下部分:
<!-- 视图解析器(框架) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean>
完整的springmvc-helloworld.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <bean name="/helloworld.action" class="com.rk.web.action.HelloWorldAction"></bean> <!-- 视图解析器(框架) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
3、映射器Mapping
【什么样的请求交给Action】
3.1、BeanNameUrlHandlerMapping
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping(核心)
将程序员定义的Action所对应的<bean>标签的name属性作为请求路径
<!-- 注册控制器(程序员) --> <bean name="/helloworld.action" class="com.rk.web.action.HelloWorldAction"></bean> <!-- 注册映射器(handler包)(框架) --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
3.2、SimpleUrlHandlerMapping
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
/delete.action和/update.action和/find.action请求路径都交由<bean>标签为id的Action,即
多个路径对应同一个Action
<!-- 注册控制器(程序员) --> <bean id="helloworldID" class="com.rk.web.action.HelloWorldAction"></bean> <!-- 注册映射器(handler包)(框架) --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/delete.action">helloworldID</prop> <prop key="/update.action">helloworldID</prop> <prop key="/find.action">helloworldID</prop> </props> </property> </bean>
![](http://s2.51cto.com/wyfs02/M01/87/61/wKioL1fe9KXC4ghwAAMNGy1WFWQ684.gif)
4、适配器Adapter
Action实现Controller接口
package com.rk.web.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class HelloWorldAction implements Controller { public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", "这是我的第一个SpringMVC应用"); modelAndView.setViewName("success"); return modelAndView; } }
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
<!-- 适配器(框架) --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
相关文章推荐
- Spring MVC视图解析器:Spring MVC ResourceBundleViewResolver示例
- Spring MVC视图解析器:Spring MVC ResourceBundleViewResolver示例
- Spring MVC中的视图解析器
- Spring MVC 4之ViewResolver视图解析器
- Spring MVC配置多视图解析器
- 4000 Spring MVC各个视图解析器的含义
- Spring MVC-视图解析器(View Resolverr)-内部资源视图解析器(Internal Resource View Resolver)示例(转载实践)
- Spring MVC视图解析器:配置多个视图解析器的优先级
- Spring MVC代码实例系列-04:通过自定义视图(继承InternalResourceView),实现既能解析Jsp页面又能解析Html页面的目的
- Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析
- Spring MVC 多个视图解析器配置
- Spring MVC视图解析器:Spring MVC XmlViewResolver示例
- SpringBoot系列: Spring MVC视图方法的补充
- Spring MVC 之 视图解析器ResourceBundleViewResolver InternalResourceViewResolver
- Spring MVC的多视图解析器配置及与Freemarker的集成
- Spring MVC 视图解析器(ViewResolver )
- SPRING MVC 的 配置 包括 包扫描 视图解析器 文件上传解析器 拦截器等
- springmvc 前端控制器,映射器,适配器,视图解析器
- Spring mvc 视图解析器 ContentNegotiatingViewResolver 源码分析
- Spring MVC 自学杂记(六) -- 多视图解析器配置