SpringMVC实现接收前端的数据(从一个网页输入数据,然后将数据提交到另外一个网页,并进行输出:集合,数组,自定义参数对象) | 您所在的位置:网站首页 › springmvc获取表单数据注解 › SpringMVC实现接收前端的数据(从一个网页输入数据,然后将数据提交到另外一个网页,并进行输出:集合,数组,自定义参数对象) |
恰巧此时,两手空空才无限拥有。 实现网页数据的提交从一个网页输出数据,将输入的数据提交到另外的一个网页 注意:SpringMVC项目在实现之前都必须进行环境的搭建 SpringMVC项目环境的基础搭配 一:创建提交书单页面 Book 图书 样书 作者 价格 二:获取第一步提交的数据,并打印在一个新的网页上 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @Controller public class controller_book1 { @GetMapping("/book") public String book(){ return "book"; } @RequestMapping(value = "/book2",method = RequestMethod.POST,produces = "text/html;charset=utf-8") //produces参数:设置字符格式UTF-8 @ResponseBody public String play(String name,String author,double price){ return name +"----"+author+"----"+price; //打印获取的数据 } } 三:因为我们在网页输入的数据如果没有进行配置的话,肯定会显示乱码如下面情况执行项目 上面主要介绍了简单数据的传递,接下来介绍实体类的数据进行传递 创建book.jsp通过form将数据传递到控制器中 Book 图书 样书 价格在控制器接受数据,上面的方法是通过定义字符串来接受前端传入的数据。在这里将通过一种新的方法来接受数据,就是创一个实体类,将接受的数据传入的实体类,然后在进行打印输出 创建接受数据的实体类 package controller; //将前端传入的数据全都保存在这个类,然后进行输出 import javax.xml.crypto.Data; import java.util.Date; public class book { private String name; private String author; private double price; @Override public String toString() { return "book{" + "name='" + name + '\'' + ", author=" + author + ", price=" + price + '}'; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } } 在控制器中接收数据,并将接收的数据传递到创建的对象里,然后进行打印输出 @RequestMapping(value = "/play3",produces = "text/html;charset=utf-8") @ResponseBody public String play3(book1 book){ return book.toString(); } 执行项目:在前端上传的数据,并不是全部都能够识别的,我们需要自定义参数的识别类能够识别前端传来的数据,上面所讲述的前端上传的数据类型都是系统自动转换的,但是还有一部分数据是系统无法自动转换的,这时候我们需要将前端传来的数据转换成能够识别的系统。 以时间为例: 配置网页: Book 图书 出版时间 样书 样书 作者 年龄 价格 结果:如果按照上面的配置内容点击提交,会出现下面错误,所以我们要通过自定义参数配置使系统来接收前端传来的数据 配置自定义参数类: package controller; //参数接收并不是全部都能进行输出的,,但是我们可以自定参数类型 import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; @Controller public class custom implements Converter { //实现Converter接口并将Date类型转换成String类型的数据 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //配置显示时间样式 @Override public Date convert(String source) { System.out.println("kankan"); try { return format.parse(source); } catch (ParseException e) { e.printStackTrace(); } return null; } }创建接口数据对象类: package controller; //将前端传入的数据全都保存在这个类,然后进行输出 import javax.xml.crypto.Data; import java.util.Date; public class book { private String name; private String author; private double price; private Date time; public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } @Override public String toString() { return "book{" + "name='" + name + '\'' + ", author='" + author + '\'' + ", price=" + price + ", time=" + time + '}'; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } }前面我们配置了自定义参数类,我们需要让框架加载我们创建自定义参数类 在配置文件进行配置: 控制器配置: @RequestMapping(value = "/play3",produces = "text/html;charset=utf-8") @ResponseBody public String play3(book book){ return book.toString(); }效果展示: 内容输出: 上面网页所显示的内容就是通过各种方法去获取前端所传来的数据内容,但是比如像集合和数组等那些方法在实际开发基本上不大会使用,基本上都是通过对象来获取数据。 |
CopyRight 2018-2019 实验室设备网 版权所有 |