SpringMVC——(二)接收表单数据

2018-11-12 23:28:00     

一、前期准备

二、改进【SpringMVCTest01】项目

1.在【src/entity】包下新增User实体类如下代码:

package entity;

public class User {
	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

2.在【WebContent/view】文件夹下新建hello.jsp并且使用post方式提交数据action="${pageContext.request.contextPath}/hello"用于指向@Controller注解中@RequestMapping(value = "/hello")的方法。如下代码:

<form action="${pageContext.request.contextPath}/hello" method="post">
	名称 :<input type="text" name="name" /><br /> 
	密码: <input type="text" name="password" /><br /> 
	      <input type="submit" value="提交">
</form>

3.修改HelloSpringMVC类在Hello方法中增加User参数,用于接收注入,如下代码:

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import entity.User;

@Controller
public class HelloSpringMVC {

	@RequestMapping(value = "/hello")
	public ModelAndView Hello(User user) {
		ModelAndView mav = new ModelAndView();
		// 类似于 request.setAttribute()
        mav.addObject("msg", "Hello,Bounds");
		//通过springMVC-servlet.xml文件的视图解析器定位到/WEB-INF/jsp/index.jsp
		mav.setViewName("index");
		return mav;
	}
}
  • hello.jsp提交的name和password会自动注入到参数user里
  • 参数user会默认被当做值加入到ModelAndView中,相当于:mav.addObject("user",user)

4.修改index.jsp文件用于显示数据,如下代码:

${msg}<br/><br/>
名称:${user.name}<br/><br/>
密码:${user.password}<br/><br/>

5.修改web.xml文件,新增过滤,解决post方式提交的中文乱码问题,如下代码:

<!-- 解决post提交中文乱码 -->
<filter> 
    <filter-name>CharacterEncodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
        <param-name>encoding</param-name> 
        <param-value>utf-8</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>CharacterEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>

6.启动Tomcat,访问http://localhost:8080/SpringMVCTest02/view/hello.jsp

三、总结

流程理解:

  • 访问http://localhost:8080/SpringMVCTest02/view/hello.jsp输入完表单请求的数据后提交
  • 来到DispatcherServlet中,处理器映射器根据提交的路径,找到了相匹配的处理器@Controller注解
  • 在Controller的方法中,通过参数绑定,表单中的数据直接注入到了形参(User user)中,前提是表单中的属性和Bean:User中的属性是相匹配的这样Spring才能找到
  • 然后进入方法,在方法中创建了一个ModelAndView并且通过这个构造方法制定了返回的View,与springMVC-servlet.xml中的配置配合后,index.jsp就变成了最后返回视图的路径。

ps:本篇博客源码下载链接:https://pan.baidu.com/s/1n20-ugqanXmIzIhQkYzI0w 密码:6bnt
SpringMVC——(一)注解配置

一、前期准备 jar包准备,你可以从网上下载最新版本的jar包,也可以使用本站提供的jar包: SpringMVC的jar包 二、第一个SpringMVC1.在eclipse中新建项目【SpringMVCTest01】使用dynamic web project的方式,引入jar包到【lib】目录下,并且配置web.xml文件如下代码:<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/

SpringMVC——(三)文件上传下载

一、前期准备jar包准备,专门有提供文件上传下载的jar包,具体哪些我也不记得了,前面的博客有提供,都导入就完事了二、文件上传1.在eclipse中新建项目【SpringMVCTest02】使用dynamic web project的方式,引入jar包到【lib】目录下,在【src/top.bounds.entity/】目录下新建FileEntity实体类并且使用*@Component*注解,如下代码:package top.bounds.entity; import org.springframework.stereotype.Component; @Component public class FileEntity { //保存文件名 private String name; //保存文件路径 private String filePath; public String getName() { return name;

 发表评论