我是SpringMVC的新手,当我在NetBeans 8.0
创建新的网络应用程序项目时,我发现dispatcher-servlet.xml
包含以下内容:
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
</props>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
<bean name="indexController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="index" />
你能简单解释一下这些豆的目的是什么吗?
答案 0 :(得分:1)
当客户端在Web应用程序中请求资源时,Spring Front Controller会拦截请求并尝试查找相应的处理程序映射。
Handler映射通过浏览配置文件中定义的各种控制器,将请求从客户端映射到其控制器对象。
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
</props>
</property>
</bean>
这是一个处理程序映射Bean。此bean的核心目的是将请求映射到控制器对象。
SimpleUrlHandlerMapping是最简单的Handler Mapping,它直接将客户端请求映射到Controller对象。
在Property标签内,我们有一个&#39; prop&#39;元素与&#39;键&#39;属性是Url,value是Controller对象的标识符。
现在我们知道将请求转发到哪个控制器对象,Handler Adapter将请求转发给控制器对象。
<bean name="indexController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="index" />
这是一个实现Controller接口的Controller Bean
控制器中的HandleRequest方法返回具有逻辑视图名称的ModelAndView对象。视图解析器映射逻辑视图名称和视图的物理位置
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
这是View Resolver Bean,它映射逻辑名称和物理视图位置。
InternalResourceViewResolver是内置的Spring Resolvers之一。