Springmvc获取前台请求数据过程解析

1)基本数据类型或String,在方法参数中定义参数,参数名与请求传递数据名一致即可自动封装;

// RequestMapping:指定方法对应的请求地址
  //return:页面地址,表示方法执行完成之后跳转到对应的页面(转发)
  //springmvc:接收请求参数,直接在方法的参数中定义名称与传递参数名一致的形参即可
  //name:会自动接收请求传递的name值
  @RequestMapping("/hello")
  public String hello(String name,Integer age){
    System.out.println("name:"+name+",age:"+age);
    return "index.jsp";
  }

启动tomcat,在浏览器地址栏输入

http://localhost:8086/hello?name=tom&age=18

即可查看结果;

2)对象类型的,在方法参数中定义对象,与对象属性名一致的数据,会自动封装进对象;

public class User {

  private Integer id;
private String name;
private Integer age;
private String sex;
private String addr;
}

并对其get和set,再写一个form表单提交信息的jsp页面;

<form action="/saveUser" method="post">
用户名:<input type="text" name="name"/><br/>
年龄:<input type="text" name="age"/><br/>
性别:<input type="radio" name="sex" value="男"/>男
<input type="radio" name="sex" value="女">女<br/>
地址:<input type="text" name="addr"><br/>
<input type="submit" value="注册"/>
</form>

再在controller中测试结果;

    @RequestMapping("/saveUser")
    public String saveUser(User user){
       System.out.println("User:"+user);
       return "index.jsp";
    }

3)接收数组的情况。在方法中定义数组;

4)对象中的数组和集合可以接收与集合属性同名的多个请求数据;

  //通过对象来接收前台的多个同名数据,两种方式,一种是数组,一种是List集合;
  //private String[] hobbies;
   private List<String> hobbies;
  public String[] getHobbies() {
    return hobbies;
  }

  public void setHobbies(String[] hobbies) {
    this.hobbies = hobbies;
  }

  public List<String> getHobbies() {
    return hobbies;
  }

  public void setHobbies(List<String> hobbies) {
    this.hobbies = hobbies;
  }

jsp页面中添加爱好属性:

爱好: <input type="checkbox" name="hobbies" value="打篮球"/>打篮球
<input type="checkbox" name="hobbies" value="打游戏"/>打游戏
<input type="checkbox" name="hobbies" value="敲代码"/>敲代码
<input type="checkbox" name="hobbies" value="学习"/>学习<br/>

再在controller中测试结果;

@RequestMapping("/saveUser")
  public String saveAdmin(User user, String[] hobbies){
    System.out.println("user:"+user);
    System.out.println(Arrays.toString(hobbies));
    return "index.jsp";
  }

5)对象中的对象。 前台指定name 时,属性.属性;

要测试对象中的对象,那我们要另外再建立一个对象,然后把这个对象当成属性添加到User.java中去;

public class Role {
  private String name;
  private Integer id;
  @Override
  public String toString() {
    return "Role{" +
        "name='" + name + '\'' +
        "id='" + id + '\'' +
        '}';
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
}

User.java中:

 //用来接收前台的数据
  private Role role;
  public Role getRole() {
    return role;
  }

  public void setRole(Role role) {
    this.role = role;
  }

jsp文件中:

<%-- 将属性封装到对象的对象属性中 属性名.属性--%>
角色:<select name="role.name" id="role">
<option value="管理员">管理员</option>
<option value="超级管理员">超级管理员</option>
<option value="测试账号">测试账号</option>
</select><br/>
<input type="hidden" name="role.id" value="100"/><br/>

测试:

public String saveUser(User user, String[] hobbies){
    System.out.println("User:"+user);
    System.out.println(Arrays.toString(hobbies));
    System.out.println("role:"+user.getRole());
    return "index.jsp";
}

6)将数据封装到map中。在方法中定义HashMap参数,并在前面添加@RequestParam注解;

7)封装到对象中的map,前台指定name为 map属性名[key值];

User.java中:

  //通过map接收前台的值
  private Map<String,String> conditions;
  public Map<String, String> getConditions() {
    return conditions;
  }
  public void setConditions(Map<String, String> conditions) {
    this.conditions = conditions;
  }

jsp文件中:

<%--将数据封装到对象中的map,map属性名[key]--%>
查询条件:<input type="text" name="conditions[age]"/><br/>
查询条件:<input type="text" name="conditions[sex]"/><br/>
<input type="submit" value="注册"/>

测试:

//map :将所有请求数据封装到map中
  // @RequestParam("name"):指定向请求中获取数据 ==>request.getParameter
  //required = false:是否必传  defaultValue:默认值
  @RequestMapping("/saveUser")
  public String saveUser(User user, String[] hobbies,
              @RequestParam(name="name",required = false,defaultValue = "username") String username,
              @RequestParam HashMap map){
    System.out.println("User:"+user);
    System.out.println("role:"+user.getRole());
    System.out.println(Arrays.toString(hobbies));
    System.out.println("map:"+map);
    System.out.println("username:"+username);    System.out.println("conditions:"+user.getConditions());    return "index.jsp"; }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Springmvc如何实现向前台传递数据

    1) 在springmvc方法的形参中定义Map,Model,ModelMap,并在方法中通过这三个对象进行值的传递: ①其中Map和ModelMap使用方式是一致的: @RequestMapping("/detail") public String detail(Integer id, //ModelMap modelMap Map modelMap ){ HashMap<String,String> conditions=new HashMap<>(); c

  • springMVC前台传数组类型,后台用list类型接收实例代码

    springMVC后台处理数组对象. list类型的参数,接收前台的数组值,实验了一下,结果还真可以. 不用绑定到对象里面. 当然我这个是前台传递了个包含的是string的数组到后台,然后,后台用list来接收. 具体如下: 前台代码: //发送请求到后台,带数组形式的数据. function testList() { var data = getTreeViewCheckedData(); $.ajax({ url: APP_NAME + "xxxx/testList", data:

  • springMVC实现前台带进度条文件上传的示例代码

    项目框架采用spring+hibernate+springMVC如果上传文件不想使用flash那么你可以采用HTML5;截图前段模块是bootstarp框架;不废话直接来代码;spring-mvc配置文件;效果截图如下: 详细实现如下: 1.mvc-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/s

  • Angular.js前台传list数组由后台spring MVC接收数组示例代码

    前言 本文主要给大家介绍了关于Angular.js前台传list数组由后台spring MVC接收数组的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧. 在开发中有时候需要在前台自定义对象,然后把对象封装在list中,在传送到后台,这样的思想也比较合理,直接来看示例代码: 1. 前台代码 $scope.saveScore = function () { $scope.userScoreList = new Array();//自定义数组 angular.forEach (

  • 浅谈SpringMVC jsp前台获取参数的方式 EL表达式

    JAVA: request.setAttribute("msg", "1234"); session.setAttribute("msg2", "1234"); JSP: ${requestScope.msg} ${sessionScope.msg2} JAVA: ModelAndView ModelMap Model里添加的参数 JSP: 直接用${参数名} JAVA: 前台表单里的信息,或者是直接在url后面以?name=

  • springmvc前台向后台传值几种方式总结(从简单到复杂)

    1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" type="text"

  • SpringMVC接收前台传递过来的值的实例

    之前控制器方法获得前台传来的值有三种方式: 1.通过HttpServletRequest: @RequestMapping(value="/index1") public String helloaction1(HttpServletRequest request){ System.out.println(request.getParameter("nnn")); //获得前台name为nnn的元素的值 return "index"; } 2.通

  • 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题

    页面报错: 后台错误: Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessag

  • Springmvc获取前台请求数据过程解析

    1)基本数据类型或String,在方法参数中定义参数,参数名与请求传递数据名一致即可自动封装: // RequestMapping:指定方法对应的请求地址 //return:页面地址,表示方法执行完成之后跳转到对应的页面(转发) //springmvc:接收请求参数,直接在方法的参数中定义名称与传递参数名一致的形参即可 //name:会自动接收请求传递的name值 @RequestMapping("/hello") public String hello(String name,Int

  • sql获取存储过程返回数据过程解析

    这篇文章主要介绍了sql获取存储过程返回数据过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 就是在执行存储后,获取存储过程执行的数据并作为其他应的二次使用, 其实在代码中可以说是调用类似,具体操作如下: 创建一个存储过程: use [库名] go set ansi_null on GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE DBO.P_TEST ( @RBACK VARCHAR(20)

  • SpringMVC解析JSON请求数据问题解析

    这几年都在搞前后端分离.RESTful风格,我们项目中也在这样用.前几天有人遇到了解析JSON格式的请求数据的问题,然后说了一下解析的方式,今天就写篇文章简单的分析一下后台对于JSON格式请求数据是怎么解析的. 先把例子的代码贴出来: 前端 <input type="button" value="测试JSON数据" onclick="testJSON()" /> <script type="text/javascrip

  • 基于JS实现父组件的请求服务过程解析

    这篇文章主要介绍了基于JS实现父组件的请求服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 <template> <div class = 'car_list' reft='scrollobx' @scroll='scrollready($event)'> </div> </template> <script> export default { data() { return { le

  • 微信小程序网络请求实现过程解析

    这篇文章主要介绍了微信小程序网络请求实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 配置服务器域名: 每个微信小程序需要事先设置一个通讯域名,小程序只可以跟指定的域名进行网络通信. 服务器域名在:小程序后台=> 开发=> 开发设置 => 服务器域名中配置,配置时需注意: 1.域名只支持https(request, uploadFile,downloadFile)和wss(connectSocket)协议. 2.域名不能使用i

  • Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法

    本文实例讲述了Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法.分享给大家供大家参考,具体如下: 第一步:根据指定的URL从google 服务器上获得包含地址的json格式的数据(其还提供xml格式的,但json解析效率比xml高) private static StringBuffer getJSONData(String urlPath){ try { URL url = new URL(urlPath); HttpURLConnection httpURLCon

  • JavaScript获取当前url路径过程解析

    这篇文章主要介绍了JavaScript获取当前url路径过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.假设当前页完整地址是:http://localhost:61768/Home/Index?id=2&age=18 //获取当前窗口的Url var url = window.location.href; //结果:http://localhost:61768/Home/Index?id=2&age=18 //获取当前窗口的主

  • Java获取配置文件的值过程解析

    这篇文章主要介绍了java获取配置文件的值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java大型项目中都会很多系统常量,比如说数据库的账号和密码,以及各种token值等,都需要统一的管理,如果零落的散布到各个类等具体的代码中的话,在后期管理上将是一场灾难,所有需要对这些变量进行统一的管理,一般都会放到web-service.properties文件中,该文件在项目中的位置如下: web-service.properties文件里的

  • Java基于final修饰数据过程解析

    这篇文章主要介绍了Java基于final修饰数据过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 final是Java中的一个重要关键字,它可以修饰数据.方法和类,本篇将从final修饰的数据角度对final做出总结. final修饰的数据代表着:永远不变.意思是,一旦你用final修饰一块数据,你之后就只能看看它,你想修改它,没门. 我们不希望改变的数据有下面两种情况: 永不改变的编译时常量. //编译时知道其值 private fin

  • SpringMVC高级开发功能实现过程解析

    一. 全局的异常处理器 1.编写一个自定义的异常类, 区分哪些异常是系统异常, 哪些异常是用户不正当操作的异常 //继承Exception public class UserException extends Exception{ private static final long serialVersionUID = -8469276157483476569L; public UserException() { super(); } public UserException(String me

随机推荐