首页 > Spring MVC
阅读:436
Spring MVC类型转换的意义
本节以一个简单应用(JSP+Servlet)为示例来介绍类型转换的意义。如图 1 所示的添加商品页面用于收集用户输入的商品信息,商品信息包括商品名称(字符串类型 String)、商品价格(双精度浮点类型 double)、商品数量(整数类型 int)。
图 1 添加商品信息的收集页面
addGoods.jsp页面的代码如下:
Goods 类的代码如下:
对于 Spring MVC 框架而言,它必须将请求参数转换成值对象类中各属性对应的数据类型——这就是类型转换的意义。
图 1 添加商品信息的收集页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>添加商品信息</title> </head> <body> <form action="addGoods" method="post"> <table border=1 bgcolor="lightblue" align="center"> <tr> <td>商品名称:</td> <td><input class="textSize" type="text" name="goodsname" /></td> </tr> <tr> <td>商品价格:</td> <td><input class="textSize" type="text" name="goodsprice" /></td> </tr> <tr> <td>商品数量:</td> <td><input class="textSize" type="text" name="goodsnumber" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="提交" /> </td> </tr> </tab1e> </form> </body> </html>希望页面收集到的数据提交到 addGoods 的 Servlet(AddGoodsServlet 类),该 Servlet 将这些请求信息封装成一个 Goods 类的值对象。
Goods 类的代码如下:
package pojo; public class Goods { private String goodsname; private double goodsprice; private int goodsnumber; // 无参数的构造方法 public Goods() { } // 有参数的构造方法 public Goods(String goodsname, double goodsprice, int goodsnumber) { super(); this.goodsname = goodsname; this.goodsprice = goodsprice; this.goodsnumber = goodsnumber; } // 此处省略了setter和getter方法 }AddGoodsServlet 类的代码如下:
package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import pojo.Goods; public class AddGoodsServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); // 设置编码,防止乱码 request.setCharacterEncoding("utf-8"); // 获取参数值 String goodsname = request.getParameter("goodsname"); String goodsprice = request.getParameter("goodsprice"); String goodsnumber = request.getParameter("goodsnumber"); // 下面进行类型转换 double newgoodsprice = Double.parseDouble(goodsprice); int newgoodsnumber = Integer.parseInt(goodsnumber); // 将转换后的数据封装成goods值对象 Goods goods = new Goods(goodsname, newgoodsprice, newgoodsnumber); // 将goods值对象传递给数据访问层,进行添加操作,代码省略 ... } }对于上面这个应用而言,开发者需要自己在 Servlet 中进行类型转换,并将其封装成值对象。这些类型转换操作全部手工完成,异常烦琐。
对于 Spring MVC 框架而言,它必须将请求参数转换成值对象类中各属性对应的数据类型——这就是类型转换的意义。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频
优秀文章
- vi工作模式(3种)以及模式切换(转换)
- Java字符串的比较(equals()、equalsIgnoreCase()和compareTo())
- C++ showpoint操作符(详解版)
- 小数在内存中是如何存储的,揭秘诺贝尔奖级别的设计(长篇神文)
- 结合C语言缓冲区谈scanf函数,那些奇怪的行为其实都有章可循
- Python SQLite create_collation()方法:创建自定义比较函数
- C# PictureBox:图片控件
- 双向线索二叉树详解(包含C语言实现代码)
- Hibernate的运行流程详解
- JSP Request.isRequestedSessionIdValid()方法:返回session是否有效