Chinaunix首页 | 论坛 | 博客
  • 博客访问: 319070
  • 博文数量: 84
  • 博客积分: 886
  • 博客等级: 准尉
  • 技术积分: 769
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-30 19:32
文章分类

全部博文(84)

文章存档

2018年(1)

2017年(2)

2014年(1)

2013年(50)

2012年(30)

我的朋友

分类: Java

2013-10-17 16:20:54

转自:http://blog.csdn.net/yeohcooller/article/details/7551588

项目需要用到Spring3.0的MVC和annotation,以前也接触过Spring,不过仅限于自己学习Spring的AOP和IoC,第一次听到Spring的MVC确实有点手足无措。网上参考了几个小案例,整了一下午,终于明白了点。分享一下。

这 个Demo中,index.jsp里面有4个链接,分别对应Controller类中的四个方法。第一个与第二个方法同样Mapping的是一个简单的路 径,分别return一个ModelAndView和String。第三个方法Mapping一个带参数的链接,第四个方法Mapping一个带路径变量 和参数的链接。在方法中做处理后返回要展示的页面和数据。

1)新建一个Dynamic Web Project——SpringMVCDemo

2)引入jar包。包括spring中dist目录下的所有jar包,以及jstl.jar,standard.jar包(JSP页面中的for each标签要用到)和commons-logging-1.1.1.jar包。

3)配置web.xml文件,内容如下:


点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <web-app xmlns:xsi=""
  3.         xmlns="" xmlns:web="/web-app_2_5.xsd"
  4.         xsi:schemaLocation=" /web-app_3_0.xsd"
  5.         id="WebApp_ID" version="3.0">
  6.       
  7.         <servlet>
  8.             <servlet-name>springMVCDemo</servlet-name>
  9.             <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  10.         </servlet>
  11.       
  12.         <servlet-mapping>
  13.             <servlet-name>springMVCDemo</servlet-name>
  14.             <url-pattern>/</url-pattern>
  15.         </servlet-mapping>
  16.       
  17.         <welcome-file-list>
  18.             <welcome-file>index.html</welcome-file>
  19.             <welcome-file>index.htm</welcome-file>
  20.             <welcome-file>index.jsp</welcome-file>
  21.             <welcome-file>default.html</welcome-file>
  22.             <welcome-file>default.htm</welcome-file>
  23.             <welcome-file>default.jsp</welcome-file>
  24.         </welcome-file-list>
  25.     </web-app>


4)在web.xml所在路径下新建springMVCDemo-servlet.xml,名字中的springMVCDemo是web.xml中配置的servlet-name,所以这个xml文件的名字是固定的。内容如下:



  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <beans xmlns=""
  3.         xmlns:mvc="" xmlns:xsi=""
  4.         xmlns:context=""
  5.         xsi:schemaLocation="
  6.             
  7.             /spring-beans-3.0.xsd
  8.             
  9.             /spring-mvc-3.0.xsd
  10.             
  11.             /spring-context-3.0.xsd">
  12.       
  13.         <mvc:annotation-driven />
  14.       
  15.         <!-- 注释资源扫描包路径 -->
  16.         <context:component-scan base-package="org.spring.wayne.controller" />
  17.       
  18.         <bean
  19.             class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  20.       
  21.         <bean
  22.             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  23.       
  24.         <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析 -->
  25.         <bean id="viewResolver"
  26.             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27.             <property name="viewClass"
  28.                 value="org.springframework.web.servlet.view.JstlView" />
  29.             <property name="prefix" value="/WEB-INF/jsp/" /><!-- 跳转页面的前缀路径
  30.                 如 /web-inf/jsp/ -->
  31.             <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp -->
  32.         </bean>
  33.     </beans>

5)新建一个POJO类User.java,内容如下:


  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <beans xmlns=""
  3.         xmlns:mvc="" xmlns:xsi=""
  4.         xmlns:context=""
  5.         xsi:schemaLocation="
  6.             
  7.             /spring-beans-3.0.xsd
  8.             
  9.             /spring-mvc-3.0.xsd
  10.             
  11.             /spring-context-3.0.xsd">
  12.       
  13.         <mvc:annotation-driven />
  14.       
  15.         <!-- 注释资源扫描包路径 -->
  16.         <context:component-scan base-package="org.spring.wayne.controller" />
  17.       
  18.         <bean
  19.             class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  20.       
  21.         <bean
  22.             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  23.       
  24.         <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析 -->
  25.         <bean id="viewResolver"
  26.             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27.             <property name="viewClass"
  28.                 value="org.springframework.web.servlet.view.JstlView" />
  29.             <property name="prefix" value="/WEB-INF/jsp/" /><!-- 跳转页面的前缀路径
  30.                 如 /web-inf/jsp/ -->
  31.             <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp -->
  32.         </bean>
  33.     </beans>


6)编写Controller类DemoController.java,内容如下:


  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <beans xmlns=""
  3.         xmlns:mvc="" xmlns:xsi=""
  4.         xmlns:context=""
  5.         xsi:schemaLocation="
  6.             
  7.             /spring-beans-3.0.xsd
  8.             
  9.             /spring-mvc-3.0.xsd
  10.             
  11.             /spring-context-3.0.xsd">
  12.       
  13.         <mvc:annotation-driven />
  14.       
  15.         <!-- 注释资源扫描包路径 -->
  16.         <context:component-scan base-package="org.spring.wayne.controller" />
  17.       
  18.         <bean
  19.             class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  20.       
  21.         <bean
  22.             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  23.       
  24.         <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析 -->
  25.         <bean id="viewResolver"
  26.             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27.             <property name="viewClass"
  28.                 value="org.springframework.web.servlet.view.JstlView" />
  29.             <property name="prefix" value="/WEB-INF/jsp/" /><!-- 跳转页面的前缀路径
  30.                 如 /web-inf/jsp/ -->
  31.             <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp -->
  32.         </bean>
  33.     </beans>


7)编写JSP页面,WebContent目录下的index.jsp内容如下:


  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <beans xmlns=""
  3.         xmlns:mvc="" xmlns:xsi=""
  4.         xmlns:context=""
  5.         xsi:schemaLocation="
  6.             
  7.             /spring-beans-3.0.xsd
  8.             
  9.             /spring-mvc-3.0.xsd
  10.             
  11.             /spring-context-3.0.xsd">
  12.       
  13.         <mvc:annotation-driven />
  14.       
  15.         <!-- 注释资源扫描包路径 -->
  16.         <context:component-scan base-package="org.spring.wayne.controller" />
  17.       
  18.         <bean
  19.             class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  20.       
  21.         <bean
  22.             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  23.       
  24.         <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析 -->
  25.         <bean id="viewResolver"
  26.             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27.             <property name="viewClass"
  28.                 value="org.springframework.web.servlet.view.JstlView" />
  29.             <property name="prefix" value="/WEB-INF/jsp/" /><!-- 跳转页面的前缀路径
  30.                 如 /web-inf/jsp/ -->
  31.             <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp -->
  32.         </bean>
  33.     </beans>


WebContent/WEB-INF/jsp路径(该路径为springMVCDemo-servlet.xml文件中id为viewResolver的prefix属性所配置)下的result.jsp的内容如下:


点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.     <beans xmlns=""
  3.         xmlns:mvc="" xmlns:xsi=""
  4.         xmlns:context=""
  5.         xsi:schemaLocation="
  6.             
  7.             /spring-beans-3.0.xsd
  8.             
  9.             /spring-mvc-3.0.xsd
  10.             
  11.             /spring-context-3.0.xsd">
  12.       
  13.         <mvc:annotation-driven />
  14.       
  15.         <!-- 注释资源扫描包路径 -->
  16.         <context:component-scan base-package="org.spring.wayne.controller" />
  17.       
  18.         <bean
  19.             class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
  20.       
  21.         <bean
  22.             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
  23.       
  24.         <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀,在requestmapping输入的地址后自动调用该类进行视图解析 -->
  25.         <bean id="viewResolver"
  26.             class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  27.             <property name="viewClass"
  28.                 value="org.springframework.web.servlet.view.JstlView" />
  29.             <property name="prefix" value="/WEB-INF/jsp/" /><!-- 跳转页面的前缀路径
  30.                 如 /web-inf/jsp/ -->
  31.             <property name="suffix" value=".jsp"></property><!-- 跳转页面后缀 如 helloWorld.jsp -->
  32.         </bean>
  33.     </beans>


Demo已经完成,运行如下图所示:

打开tomcat,在浏览器中输入后如图所示:


依次打开浏览器中的链接,运行结果如下图所示:

这就是一个完整的简单的Spring MVC Demo ,参考来自网络……#


阅读(1318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~