zoukankan      html  css  js  c++  java
  • springMvc入门Demo例子

    --2013年5月28日13:27:42

    园子里不少springMvc入门的Demo,但是不完整或者找着做不出来,我把我的例子总结出来。

    理论知识点不讨论,直接说步骤:

    1、myeclipse创建helloS的javaWeb项目

    2、导入spring的依赖jar包,Myeclipse的library里面的spring 3.0CoreLibraries,Spring 3.0 web libraries

    导入后的jar包图:

    3、创建一下几个文件

    3.1web.xml

    3.2springmvc-servlet.xml

    3.3springmvc-view.xml

    3.4index.jsp

    3.5userlist.jsp

    ​3.6UserController.java 

    3.7User.java

    详细文件

    3.1web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <web-app version="2.5" 
     4     xmlns="http://java.sun.com/xml/ns/javaee"
     5     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     6     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     7     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     8         <!--配置springDispatcherServlet的处理类  -->
     9     <servlet>
    10         <servlet-name>demoServlet</servlet-name>
    11         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    12         <!--加载处理类dispatcher的配置文件 多个用,号隔开 -->
    13         <init-param>
    14              <param-name>contextConfigLocation</param-name>
    15              <param-value>
    16                  /WEB-INF/springmvc-servlet.xml,/WEB-INF/springmvc-view.xml    
    17              </param-value> 
    18         </init-param>
    19     </servlet>
    20     <!--DispatcherServlet拦截规则  -->
    21     <servlet-mapping>
    22         <servlet-name>demoServlet</servlet-name>
    23         <url-pattern>*.do</url-pattern>
    24     </servlet-mapping>
    25 </web-app>
    view code

    3.2springmvc-servlet.xml

     1 <?xml version="1.0" encoding="UTF-8"?>  
     2 <beans xmlns="http://www.springframework.org/schema/beans"  
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
     4     xmlns:tx="http://www.springframework.org/schema/tx"  
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans    
     6     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
     7     http://www.springframework.org/schema/tx      
     8     http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
     9        
    10     <!-- 【配置映射处理器】 -->  
    11     <!-- SpringMVC自带的映射处理器均实现了Spring的Ordered接口,这意味着我们可以在应用系统中声明多个处理器映射 -->  
    12     <!-- 并且可以设置它们的优先级,这主要体现在order属性上,其值越小,则对应的该映射处理器的优先级越高 -->  
    13     <!-- 本例中,SimpleUrlHandlerMapping的order值比BeanNameUrlHandlerMapping的小 -->  
    14     <!-- 这意味着DispatcherServlet在映射URL的时候,首先会咨询SimpleUrlHandlerMapping -->  
    15     <!-- 只有在SimpleUrlHandlerMapping无法返回结果时,才咨询BeanNameUrlHandlerMapping -->  
    16     <bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">  
    17         <property name="order" value="1"/>  
    18     </bean>  
    19     <bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
    20         <property name="order" value="0"/>  
    21         <property name="mappings">  
    22             <props>  
    23                 <prop key="/userlist.do">userController</prop>  
    24                 <prop key="/*.do">userController</prop>  
    25             </props>  
    26         </property>  
    27     </bean>  
    28   
    29     <!-- 这里的id="userController"对应的是<bean id="simpleUrlMapping">中的<prop>里面的value -->  
    30     <bean id="userController" class="com.study.controller.UserController"/>  
    31        
    32     <!-- DispatcherServlet使用的默认处理器映射是BeanNameUrlHandlerMapping,它使用URL样式的名字 -->  
    33     <bean name="/userlist.do" class="com.study.controller.UserController"/>  
    34 </beans>  
    View Code

    3.3springmvc-view.xml

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:tx="http://www.springframework.org/schema/tx"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans    
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd    
        http://www.springframework.org/schema/tx      
        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
           
        <!-- 【配置视图解析器】 -->  
        <!-- InternalResourceViewResolver会在ModelAndView返回的视图名前加上prefix指定的前缀,再在最后加上suffix指定的后缀 -->  
        <!-- 由于UserController返回的ModelAndView中的视图名是userlist,故该视图解析器将在/WEB-INF/jsp/userlist.jsp处查找视图 -->  
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
            <property name="prefix" value="/"/>  
            <property name="suffix" value=".jsp"/>  
        </bean>  
    </beans>  
    View Code

    3.4index.jsp

    <%@ page language="java" pageEncoding="UTF-8"%>  
    <a href="<%=request.getContextPath()%>/userlist11.do">Visit "/userlist11.htm" to my SpringMVC demo page</a>  
    <br/>  
    <br/>  
    <a href="<%=request.getContextPath()%>/userlist22.do">Visit "/userlist22.htm" to my SpringMVC demo page</a>  
    <br/>  
    <br/>  
    <a href="<%=request.getContextPath()%>/userlist33.do">Visit "/userlist33.htm" to my SpringMVC demo page</a>  
    View Code

    3.5userlist.jsp

    <%@ page language="java" pageEncoding="UTF-8"%>  
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
    <h2>Welcome to my SpringMVC demo page</h2>  
    <c:forEach items="${users}" var="user">  
        <c:out value="${user.username}"/><br/>  
        <c:out value="${user.password}"/><br/>  
        <c:out value="${user.address}"/><br/>  
        <c:out value="${user.age}"/><br/>  
    </c:forEach>  
      
    <!--   
    以下是,处理对"/userlist.htm"的请求的整个工作步骤   
    1、DispatcherServlet接受对"/userlist.htm"样式的URL请求   
    2、DispatcherServlet询问BeanNameUrlHandlerMapping   
      询问Bean的名字是"/userlist.htm"的控制器,并且找到了UserController的Bean   
    3、DispatcherServlet分发给UserController来处理这个请求   
    4、UserController返回一个ModelAndView对象,它带有一个逻辑视图名"userlist",以及保存在"users"属性中的值   
    5、DispatcherServlet询问它的视图解析器(配置为InternalResourceViewResolver)   
      查找逻辑名为userlist的视图,InternalResourceViewResolver返回/WEB-INF/jsp/userlist.jsp路径   
    6、DispatcherServlet将请求导向/WEB-INF/jsp/userlist.jsp页面   
    -->  
    View Code

    ​3.6UserController.java 

    package com.study.controller;   
      
    import java.util.ArrayList;   
    import java.util.List;   
      
    import javax.servlet.http.HttpServletRequest;   
    import javax.servlet.http.HttpServletResponse;   
      
    import org.springframework.web.servlet.ModelAndView;   
    import org.springframework.web.servlet.mvc.AbstractController;   
      
    import com.study.model.User;
      
     
    public class UserController extends AbstractController {   
        @Override  
        protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {   
            List<User> userList = new ArrayList<User>();   
            User user11 = new User();   
            User user22 = new User();   
            user11.setUsername("张三");   
            user11.setPassword("222222");   
            user11.setAddress("dkdkkdk");   
            user11.setAge(27);   
            user22.setUsername("李四");   
            user22.setPassword("95000220");   
            user22.setAddress("王五");   
            user22.setAge(37);   
            userList.add(user11);   
            userList.add(user22);   
            //ModelAndView类在SpringMVC中是一个很重要的概念   
            //控制器执行方法都必须返回一个ModelAndView,ModelAndView对象保存了视图以及视图显示的模型数据   
            //第一个参数:视图组件的逻辑名称。这里视图的逻辑名称是userlist,视图解析器会使用该名称查找实际的View对象   
            //第二个参数:传递给视图的,模型对象的名称   
            //第三个参数:传递给视图的,模型对象的值   
            System.out.println("run here ----------------");
            return new ModelAndView("userlist", "users", userList);   
        }   
    }  
    View Code

    3.7User.java

     1 package com.study.model;   
     2   
     3  
     4 public class User {   
     5     private String username;   
     6     private String password;   
     7     private String address;   
     8     private Integer age;   
     9        
    10     public String getUsername() {   
    11         return username;   
    12     }   
    13     public void setUsername(String username) {   
    14         this.username = username;   
    15     }   
    16     public String getPassword() {   
    17         return password;   
    18     }   
    19     public void setPassword(String password) {   
    20         this.password = password;   
    21     }   
    22     public String getAddress() {   
    23         return address;   
    24     }   
    25     public void setAddress(String address) {   
    26         this.address = address;   
    27     }   
    28     public Integer getAge() {   
    29         return age;   
    30     }   
    31     public void setAge(Integer age) {   
    32         this.age = age;   
    33     }   
    34 }  
    View Code

    4、部署运行

    5、访问:http://localhost:2013/helloS/userlist22.do

    应该可以了,步骤说完了。理论的东西以后总结。

    ----

    参考资料:

    1、http://www.ishang123.com/jishubowen/java/2012-09-29/252.html

    2、http://javacrazyer.iteye.com/blog/790834(这篇文章有错)

  • 相关阅读:
    ubuntu12.04 死机 卡屏 画面冻结解决方案
    Install Firefox 20 in Ubuntu 13.04, Ubuntu 12.10, Ubuntu 12.04, Linux Mint 14 and Linux Mint 13 by PPA
    ListView1.SelectedItems.Clear()
    android studio 下载地址
    jquery.slider.js jquery幻灯片测试
    jquery.hovermenu.js
    jquery.tab.js选项卡效果
    适配 placeholder,jquery版
    jquery.autoscroll.js jquery自动滚动效果
    将 Google Earth 地图集成到自己的窗体上的 简单控件
  • 原文地址:https://www.cnblogs.com/qinche/p/3103497.html
Copyright © 2011-2022 走看看