SprinMVC轉發、重定向、收集date資料、自定義轉換器、檔案上傳、json資料轉換
阿新 • • 發佈:2018-11-16
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
檢視控制檯