我是SpringMVC的新手,当我在NetBeans 8.0
中创建新的web应用程序项目时,我看到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" />
你能简单地解释一下这些豆子的用途吗? 当客户端请求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是直接将客户端请求映射到控制器对象的最简单的HandlerMapping。
在Property标签中,我们有一个'prop'元素,'Key'属性是Url, value是Controller对象的标识符。
现在我们知道要将请求转发到哪个控制器对象,处理器适配器将请求转发到控制器对象。
<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" />
这是视图解析器Bean,它映射逻辑名称和物理视图位置。
InternalResourceViewResolver是一个内置的Spring解析器