1. 程式人生 > >SprinMVC轉發、重定向、收集date資料、自定義轉換器、檔案上傳、json資料轉換

SprinMVC轉發、重定向、收集date資料、自定義轉換器、檔案上傳、json資料轉換

1.專案模組圖
在這裡插入圖片描述
2.完成SpringMVC的基本搭建
pom.xml(下載jar包的檔案)

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <
parent
>
<artifactId>SpringMVC</artifactId> <groupId>SpringMVC</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>SpringMVC_03</groupId> <artifactId>SpringMVC_03</
artifactId
>
<version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>SpringMVC_03 Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <
project.build.sourceEncoding
>
UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!--引入SpringMVC依賴--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.10.RELEASE</version> </dependency> </dependencies> <build> <finalName>SpringMVC_03</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.20.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>

springmvc.xml(核心配置檔案)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">


    <!--配置註解掃描器-->
    <context:component-scan base-package="com.zs.controller" />

    <!--配置內部模型檢視解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>


</beans>

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>SpringMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--初始化引數,將springmvc的核心配置檔案springmvc.xml初始化-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>

MainController.java

package com.zs.controller;

import com.zs.entity.Point;
import com.zs.entity.Users;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.*;

/**
 * @author 小思
 * @PackageName:com.zs.controller
 * @ClassName: MainController
 * @Description:
 * @date 2018/11/3 20:26
 */
//標明掃描器經過的類
@Controller
public class MainController {
    //測試框架是否成功
    @RequestMapping("test")
    public String test(){
        System.out.println("springmvc成功搭建");
        return "index";
    }
}

將專案釋出到伺服器上,然後訪問http://localhost:8080/test.action看控制輸出
在這裡插入圖片描述
則搭建SpringMVC成功

SprinMVC轉發、重定向、收集date資料、自定義轉換器、檔案上傳、json資料轉換

轉發

MainController.java

package com.zs.controller;

import com.zs.entity.Point;
import com.zs.entity.Users;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.*;

/**
 * @author 小思
 * @PackageName:com.zs.controller
 * @ClassName: MainController
 * @Description:
 * @date 2018/11/3 20:26
 */
//標明掃描器經過的類
@Controller
public class MainController {
    //測試框架是否成功
    @RequestMapping("test")
    public String test(){
        System.out.println("springmvc成功搭建");
        return "index";
    }

    //測試轉發到jsp頁面
    @RequestMapping("testForword")
    public String testForword(Map map){
        map.put("uname","tomcat");
        map.put("upwd","123456");
        return "forward:TestForwardAndRedirect.jsp";
    }

  
}

重新發布專案,瀏覽器訪問http://localhost:8080/testForword.action

重定向

MainController.java

package com.zs.controller;

import com.zs.entity.Point;
import com.zs.entity.Users;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.*;

/**
 * @author 小思
 * @PackageName:com.zs.controller
 * @ClassName: MainController
 * @Description:
 * @date 2018/11/3 20:26
 */
//標明掃描器經過的類
@Controller
public class MainController {
    //測試重定向到頁面
    @RequestMapping("testRedirect")
    public String testRedirect(Map map){
        map.put("uname","tomcat");
        map.put("upwd","123456");
        return "redirect:TestForwardAndRedirect.jsp";
    }
}

重新發布專案,瀏覽器訪問http://localhost:8080/testRedirect.action

收集頁面date型別資料

addUsers.jsp(收集資料的頁面)

<%--
 @Name: addUsers
 @Description: 
 @author 小思
 @date 2018/11/3 20:58
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>測試頁面收集date資料</title>
</head>
<body>
<form action="/testDate.action" method="post">
    使用者名稱:<input type="text" name="uname"><br>
    生日:<input type="text" name="birthday"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

Users.java(包含date型別的屬性的實體類,注意要date屬性上要開啟註解@DateTimeFormat(pattern =“yyyy-MM-dd”))

package com.zs.entity;

import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @author 小思
 * @PackageName:com.zs.entity
 * @ClassName: Users
 * @Description:
 * @date 2018/11/3 20:26
 */
public class Users {
    private String uname;//使用者名稱
    @DateTimeFormat(pattern ="yyyy-MM-dd")
    private Date birthday;//生日(不是一般的型別就要標明註解)

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Users() {
    }

    public Users(String uname, Date birthday) {
        this.uname = uname;
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "Users{" +
                "uname=" + uname +
                ", birthday=" + birthday +
                '}';
    }
}

MainController.java

package com.zs.controller;

import com.zs.entity.Point;
import com.zs.entity.Users;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.*;

/**
 * @author 小思
 * @PackageName:com.zs.controller
 * @ClassName: MainController
 * @Description:
 * @date 2018/11/3 20:26
 */
//標明掃描器經過的類
@Controller
public class MainController {
    //測試頁面收集data資料
    @RequestMapping("testDate")
    public String testDate(Users users){
        System.out.println(users);
        return "index";
    }
}

在springmvc.xml添加註解驅動的配置和自定義轉換器的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">


    <!--配置註解掃描器-->
    <context:component-scan base-package="com.zs.controller" />

    <!--配置內部模型檢視解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <!--配置註解驅動-->
    <mvc:annotation-driven></mvc:annotation-driven>

    <!--配置自定義轉換器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <bean class="com.zs.converter.PointConverter"></bean>
        </property>
    </bean>

   


</beans>

重新發布專案,瀏覽器訪問http://localhost:8080/addUsers.jsp
在這裡插入圖片描述
檢視控制檯
在這裡插入圖片描述