Spring MVC 实例及使用

阅读更多

Spring MVC Demo


 

说明:这个Demo用来简单展示Spring MVC的实现。[在此之前,应该下载好springjar文件,以及Spring的依赖jar文件,以及jstl标签库{可选},和standard.jar{可选}]

步骤如下:

1、 在MyEclipse下建立一个Web Projec名称为:Demo;

2、 添加相应的jar文件到WEB-INF/lib,如:spring-framework-3.0.2.RELEASE-with-docs.zip解压文件下dist文件夹下的core、beans、[context.support、context包支持上下文]、[web.servlet支持web MVC]、web、asm、expression,以及spring-framework-3.0.2.RELEASE-dependencies.zip {Spring依赖}解压文件org.apache.commons/com.springsource.org.apache.commons.logging下的com.springsource.org.apache.commons.logging.jar以及jstl.jarstandard.jar,

3、 配置核心控制器,代码如下:

"1.0" encoding="UTF-8"?>

"2.5"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

   

   

        springMVC

    org.springframework.web.servlet.DispatcherServlet

        1

   

   

        springMVC

        *.do

   

   

    index.jsp

   

4、 编写一个控制类如:UserController.java,包结构:com.teana.controller,此类继承AbstractCommandController抽象类,[说明:此类用到数据绑定,数据类型的转换],代码如下:

package com.teana.controller;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.propertyeditors.CustomDateEditor;

import org.springframework.validation.BindException;

import org.springframework.web.bind.ServletRequestDataBinder;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.AbstractCommandController;

import com.teana.vo.User;

/**

* @author TEANA -- 2010-5-16

* User 控制器

* 窗口 > 首选项 > Java > 代码生成 > 代码和注释

*/

@SuppressWarnings("deprecation")

public class UserController extends AbstractCommandController

{

    @Override

    protected ModelAndView handle(HttpServletRequest request,

            HttpServletResponse response, Object commond, BindException be)

            throws Exception

    {

        User user = (User)commond;//自动封装的User对象

        System.out.println(user);

        return new ModelAndView("success");//说明视图的跳转,会在SpringMVC-servlet.xml配置文件中查出

    }

    /**

    * 数据绑定,及数据类型转换

    */

    @Override

    protected void initBinder(HttpServletRequest request,

            ServletRequestDataBinder binder) throws Exception

    {

        binder.registerCustomEditor(Date.class,

                new CustomDateEditor(

                        new SimpleDateFormat("yyyy-MM-dd"), true));

    }

}

 

5、 编写User.java文件,包结构:com.teana.vo,代码如下:

package com.teana.vo;

import java.io.Serializable;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* @author TEANA -- 2010-5-16

* 用户模型

* 窗口 > 首选项 > Java > 代码生成 > 代码和注释

*/

public class User implements Serializable

{

    private static final long serialVersionUID = -4360427971861239742L;

    private int id;

    private String name;

    private String cardID;

    private Date birth;

    public int getId()

    {

        return id;

    }

    public void setId(int id)

    {

        this.id = id;

    }

    public String getName()

    {

        return name;

    }

    public void setName(String name)

    {

        this.name = name;

    }

    public String getCardID()

    {

        return cardID;

    }

    public void setCardID(String cardID)

    {

        this.cardID = cardID;

    }

    public Date getBirth()

    {

        return birth;

    }

    public void setBirth(Date birth)

    {

        this.birth = birth;

    }

    @Override

    public String toString()

    {

        return "[ name =" + name + ", birth = " +

            new SimpleDateFormat("yyyy-MM-dd").format(birth) +

            ", carID = " + cardID + ", id = " + id + " ]";

    }

}

 

6、 编写jsp页面:

A:修改WebRoot文件下的index.jsp页面,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    Spring MVC Demo

   "login.do" />springMvc-servlet.xml文件中查找真正的jsp页面-->

B:在 WEB-INF文件下创建一个jsp文件夹,在jsp文件夹下创建一个login.jsp文件,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    Spring MVC Demo 用户注册



"color:pink" >Spring MVC Demo 用户注册

"user.do" method="post">user.dospringMVC-servlet.xml中查找-->

     

         

         

         

         

         

     

账号:"text" name="id" />
姓名:"text" name="name" />
生日:"text" name="birth" />
卡号:"text" name="cardID" />
"submit" value=  "/>"center">"reset" value=  "/>

C:WEB-INF/jsp文件夹下创建一个success.jsp文件,这里只用来说明页面跳转成功,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    Spring MVC Demo 用户登录成功

   

   

用户登录成功页面

 

7、 WEB-INF文件夹下创建一个类似于Spring中的applicationContext.xml文件的SpringMVC-servlet.xml文件,这个文件的命名为*****-servlet.xml,*****由配置在web.xml文件下的核心控制器的servlet-name决定。编写其文件代码如下:

"1.0" encoding="UTF-8"?>

"http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="   

    http://www.springframework.org/schema/beans   

    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  

    http://www.springframework.org/schema/aop   

    http://www.springframework.org/schema/aop/spring-aop-2.0.xsd  

    http://www.springframework.org/schema/tx   

    http://www.springframework.org/schema/tx/spring-tx-2.0.xsd  

    http://www.springframework.org/schema/context  

    http://www.springframework.org/schema/context/spring-context-2.5.xsd">

    url的方式映射方式-->

    "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

    "mappings">

        

             "index.do">indexController

             "login.do">loginController

             "user.do">userController

        

   

   

Url直接跳转到相应jsp文件,此处是当输入http://localhost:8080/Demo/index.do,则跳到WEB-INF/jsp/index.jsp页面-->

"indexController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />

http://localhost:8080/Demo/login.do则根据springMVC-servlet.xml文件的viewName的值去在制定格式的路径下查找相应文件-->

    "loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">

    "viewName" value="login" />

   

    "userController" class="com.teana.controller.UserController">

    "commandClass" value="com.teana.vo.User" />

   

 

    "org.springframework.web.servlet.view.UrlBasedViewResolver">

    "viewClass" value="org.springframework.web.servlet.view.JstlView" />

    "prefix" value="/WEB-INF/jsp/" />

    "suffix" value=".jsp" />

   

总结:【使用Spring mvc 需要步骤】

①     在web.xml中配置DispatcherServlet及URL映射;

②     编写IOC容器所需要的XML配置文件,命名为-servlet.xml,放到/WEB-INF目录下,如果DispatchertServlet在web.xml中的配置为SpringMVC,则Spring将寻找SpringMVC-servlet.xml配置文件。

③     在XML配置文件中定义URL映射方式和使用哪种View技术

你可能感兴趣的:(MVC,Spring,Servlet,Web,JSP)