每次读《Spring源码深度解析》都有新收获

今天看了org.springframework.web.servlet.handler.SimpleUrlHandlerMapping才知道,之前写的jsp页面代码都是通过访问jsp页面再请求后台action把结果返回给页面。
原来使用org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
可以直接访问接口再返回页面。并且进行数据初始化。(不使用这个特性也可以,纯属学习。)
配置文件:
web.xml

 <web-app xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee">
 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
 </context-param>
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <load-on-startup>1</load-on-startup>  
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
    <listener>
    <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
  </listener>
  </web-app>

springMVC配置:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 <property name="mappings">
    <props>
    <prop key="/index.html">indexController</prop>
    </props>
   </property></bean>
   <bean id="indexController" class="com.zhouwei.IndexController"></bean>
</beans>

applicationContext.xml

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/WEB-INF/"/>  
   <property name="suffix" value=".jsp"></property>  </bean>
</beans>

controller:

public class IndexController extends AbstractController {

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    System.out.println("-------handleRequestInternal----------");
      ModelAndView mv = new ModelAndView("index","name","test");
       return mv;
}
}

效果

我访问的是index.html通过springmvc配置,请求到了indexController ,indexController实现了AbstractController的handleRequestInternal方法,从而跳转到ModelAndView(“index”,”name”,”test”);

顺便解释下 InternalResourceViewResolver

prefix 意思是ModelAndView的view中value的前面自动加上prefix 的内容,后面加上suffix内容
整个拼起来就是 /WEB-INF/index.jsp
项目目录结构如下:
这里写图片描述

简单记录下~~~每次读《Spring源码深度解析》都有新收获。

猜你喜欢

转载自blog.csdn.net/iphone4grf/article/details/53740165