springMVC(1)---获取前段数据

首先说明,如果你学过Struts2,那么在学springMVC就会简单很多,我也不最基础的开始写了,我前篇文章搭建了个ssm框架,算是springmvc入门了。

链接:基于maven的ssm框架整合

一. 有哪些绑定数据的注解:

1.@RequestParam,绑定单个请求数据,可以是URL中的数据,表单提交的数据或上传的文件; 
     2.@PathVariable,绑定URL模板变量值; 
     3.@CookieValue,绑定Cookie数据; 
     4.@RequestHeader,绑定请求头数据; 
     5.@ModelAttribute,绑定数据到Model; 
     6.@SessionAttributes,绑定数据到Session; 
     7.@RequestBody,用来处理Content-Type不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等; 
     8.@RequestPart,绑定“multipart/data”数据,并可以根据数据类型进项对象转换;

二.@RequestParam讲解

    首先说明,项目的框架和架包我直接用的是smm框架整合的内容,我是在这个基础上进行操作,先看我jsp放置。

(1)先看Controller层

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; @Controller
public class ParamController { /**
* GET请求
*/
@RequestMapping(value="/jsp/paramdate", method = {RequestMethod.GET})
public ModelAndView paramBind(){ ModelAndView modelAndView = new ModelAndView();
//因为我这边指定是post请求,所以不会走到这里,所以haha.jsp也没有写
modelAndView.setViewName("haha");
return modelAndView;
} /**
* POST请求
*/
@RequestMapping(value="/jsp/paramdate", method = {RequestMethod.POST})
public ModelAndView paramBind(HttpServletRequest request, @RequestParam("urlParam") String urlParam, @RequestParam("formParam")
String formParam, @RequestParam("formFile") MultipartFile formFile){ //通过注解直接获得
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("urlParam", urlParam);
modelAndView.addObject("formParam", formParam);
modelAndView.addObject("formFileName", formFile.getOriginalFilename()); //如果不用注解获得数据,我们也可以手动获取
String urlParam1 = ServletRequestUtils.getStringParameter(request, "urlParam", null);
String formParam1 = ServletRequestUtils.getStringParameter(request, "formParam", null);
MultipartFile formFile1 = ((MultipartHttpServletRequest) request).getFile("formFile"); modelAndView.addObject("urlParam1", urlParam1);
modelAndView.addObject("formParam1", formParam1);
modelAndView.addObject("formFileName1", formFile1.getOriginalFilename());
//setViewName代表返回界面名称
modelAndView.setViewName("return");
return modelAndView;
}
}

(2)开始的start.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<form action="paramdate?urlParam=你好" method="post" enctype="multipart/form-data">
<input type="text" name="formParam" /><br/>
<input type="file" name="formFile" /><br/>
<input type="submit" value="Submit" />
</form>
</body>
</html>

界面

(3)返回return.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
注解获取数据:<br/><br/>
${urlParam}<br/>
${formParam}<br/>
${formFileName}<br/><br/><br/><br/>
手动获取数据:<br/><br/>
${urlParam1}<br/>
${formParam1}<br/>
${formFileName1}<br/>
</body>
</html>

界面

通过这个小案例,我们通过注解和非注解的方式,把前段界面的值传到后端,在从后端传到前段。

思考:我们在实际开发中,在前段往后段传值的时候,后端一个一个获取值再放到Model实体中,还是太麻烦。别担心,我们不需要把数据绑定到一个个变量然后在对model赋值,只需要把model加入相应的action参数(这里不需要指定绑定数据的注解)Spring MVC会自动进行数据转换并绑定到model对象上,一切就是这么简单。

三.通过实体获取前端值

(1)建立User实体

public class User {

    private String name;
private String password; /*提供set和get方法,toString方法*/
}

(2)建立Controller类

import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ssm.model.User; @Controller
public class UsersController { @RequestMapping("/jsp/loging")
public void getUser(HttpServletRequest request, Model model,User user){
User users=user;
System.out.println(users.getName()+"--"+users.getPassword());
}
}

(3)开始loging.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <!-- 如何要使用SpringMVC标签,那么一定要添加下面这个taglib -->
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <!-- 如果你要使用model进行赋值,那就需要指明哪个model,而且id中的值要和下面值一致,不然会报错 -->
<!-- Neither BindingResult nor plain target object for bean name 'users' available as request attribute -->
<jsp:useBean id="user" class="com.ssm.model.User" scope="request"/>
<html>
<body>
<form:form action="loging" modelAttribute="user" method="post">
用户名:<form:input path="name"/><br/>
密 码:<form:password path="password"/><br/>
<input type="submit" value="Submit" />
</form:form>
</body>
</html>
<!-- 还有如果你的form表单中,path中的名字,在model中没有也会报错,比如我加一个names,当加载页面时报错 -->
<!-- Invalid property 'names' of bean class [com.ssm.model.User]: Bean property 'names' is not readable -->

界面 (密码123)

(4)最后我们在后台看我们打印的那条数据

已经成功,直接把属性注入到了user中。

想的太多,做的太少,中间的落差就是烦恼,要么去做,要么别想 少尉【8】

springMVC(1)---获取前段数据的更多相关文章

  1. springMVC(2)---获取前段数据

    springMVC(1)---获取前段数据 首先说明,如果你学过Struts2,那么在学springMVC就会简单很多,我也不最基础的开始写了,我前篇文章搭建了个ssm框架,算是springmvc入门 ...

  2. springMVC(6)---处理模型数据

    springMVC(6)---处理模型数据 之前一篇博客,写个怎么获取前段数据:springMVC(2)---获取前段数据,这篇文章写怎么从后端往前端传入数据. 模型数据类型             ...

  3. SpringMVC 02: SpringMVC响应get和post请求 + 5种获取前端数据的方式

    响应get和post请求 SpringMVC中使用@RequestMapping注解完成对get请求和post请求的响应 项目结构和配置文件与SpringMVC博客集中的"SpringMVC ...

  4. HTML5操作麦克风获取音频数据(WAV)的一些基础技能

    基于HTML5的新特性,操作其实思路很简单. 首先通过navigator获取设备,然后通过设备监听语音数据,进行原始数据采集. 相关的案例比较多,最典型的就是链接:https://developer. ...

  5. SpringMVC框架 SpringMVC的获取01

    ---恢复内容开始--- SpringMVC通过实现MVC模式,很好地将数据.业务与展现进行了分离.从MVC的角度来说,SpringMVC和Struts2非常类似,但SpringMVC采用了可插拔的组 ...

  6. Spring系列 SpringMVC的请求与数据响应

    Spring系列 SpringMVC的请求与数据响应 SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Suc ...

  7. C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据

    我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的open ...

  8. jdbc java数据库连接 7)获取插入数据的自增长值

    我们创建一个sql表,里面的数据往往都会有自增长值. 那么,我们用jdbc插入数据的时候,要想同时获得这个增长值. 代码: /** * * 这是插入一条数据的同时,获取该数据的则增长列的值(该例子的自 ...

  9. 室内定位系列(二)——仿真获取RSS数据

    很多情况下大家都采用实际测量的数据进行定位算法的性能分析和验证,但是实际测量的工作量太大.数据不全面.灵活性较小,采用仿真的方法获取RSS数据是另一种可供选择的方式.本文介绍射线跟踪技术的基本原理,以 ...

随机推荐

  1. XML之外部DTD和内部DTD

    DTD(Document Type Definition):文档类型定义,可以定义合法的XML文档结构,它使用一系列合法元素来定义文档的结构.DTD分为内部DTD和外部DTD,所谓内部DTD是指该DT ...

  2. 2.安装Nginx

    安装稳定版本的nginx 1.为CentOS系统安装yum仓库,创建文件 /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=htt ...

  3. sass学习--在htm文件中使用

    一.导语 最近的战狼2好火爆啊,每天看战狼2的票房一路高飙,我估计比吴京还开心.看了这部戏的拍摄过程,除了敬佩就是踏实,是的,吴京是电影圈隔了这么久后能踏踏实实做电影的了,纯属个人见解,不喜请忽略.. ...

  4. Easy UI下拉列表默认选中(多行)与为文本框赋值

    1.为单行文本框赋值 var data2 = $('#LoadArea').combobox("getData"); if (data2) { $('#id).combobox(' ...

  5. js 切换全屏

    公司有一个需求就是点击某一个按钮实现全屏切换功能,然后呢我就在网上扒了段代码.封装了一下.使用的小伙伴们可以看看哦! 切换全屏代码 <!DOCTYPE html> <html> ...

  6. C#多线程和线程同步总结

    Thread 没有参数的线程启动 Thread newThread = new Thread(new ThreadStart(DoWork)); newThread.Start(); 有参数的线程启动 ...

  7. Spring的69个知识点

    目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spri ...

  8. SpringBoot之文件读取

    SpringBoot 寻找启动配置文件规则如下: 当前目录下的 config 目录 当前目录 classpath 下的 config 目录 classpath 下的 root 目录(根路径) 上面的优 ...

  9. maven学习之二

    三 profile介绍 可以有多个地方定义profile.定义的地方不同,它的作用范围也不同. (1)    针对于特定项目的profile配置我们可以定义在该项目的pom.xml中. (2)     ...

  10. 源码怎么找之rest_framework的用户认证

    首先得有一点常识,比如用户认证,就是authenticate 比如一个函数,应该有返回值, 比如一个类里面的self,真的是代表本身这个类吗 再比如看到一个东西加括号,就两种情况,一种是函数,一种是类 ...