SpringMVC快速入门第五讲——SpringMVC的参数绑定

这篇博客详细介绍了SpringMVC的参数绑定,包括默认支持的数据类型、简单数据类型绑定、使用@RequestParam、绑定Pojo类型、自定义参数绑定和与Struts2的区别。通过案例展示了如何在Controller中处理各种类型的参数,如商品编辑和保存,以及如何处理中文乱码问题和自定义日期格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解。温馨提示:本文所有案例代码的编写均建立在前文《SpringMVC快速入门第四讲——Spring、MyBatis和SpringMVC的整合》的案例基础之上,因此希望读者能仔细阅读这篇文章。

默认支持的数据类型

现在有这样一个需求:打开商品编辑页面,展示商品信息。如何解决这个需求呢?这儿是我对这个需求的分析:编辑商品信息,先要根据商品id查询商品信息,然后展示到页面中。这里假设请求的url为itemEdit.action,由于我想要根据商品id查询商品信息,所以需要传递商品id这样一个参数。最终的一个响应结果就是在商品编辑页面中展示商品详细信息,如下图所示。
在这里插入图片描述
为了解决这个需求,必然要有一个商品编辑页面,这里将如下itemEdit.jsp页面复制到工程的WEB-INF/jsp目录下。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!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> 
	<span>${msg }</span>
	<!-- 上传图片是需要指定属性 enctype="multipart/form-data" -->
	<!-- <form id="itemForm" action="" method="post" enctype="multipart/form-data"> -->
	<form id="itemForm"	action="${pageContext.request.contextPath }/updateItem.action" method="post">
		<input type="hidden" name="id" value="${item.id }" /> 修改商品信息:
		<table width="100%" border=1>
			<tr>
				<td>商品名称</td>
				<td><input type="text" name="name" value="${item.name }" /></td>
			</tr>
			<tr>
				<td>商品价格</td>
				<td><input type="text" name="price" value="${item.price }" /></td>
			</tr>
			<tr>
				<td>商品简介</td>
				<td><textarea rows="3" cols="30" name="detail">${item.detail }</textarea>
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" value="提交" />
				</td>
			</tr>
		</table>

	</form>
</body>

</html>

当然了,在商品列表展示页面(itemList.jsp)中,我们还须注意编辑以下这个修改超链接,如下图所示。
在这里插入图片描述
所有前端页面准备好之后,接下来就要编写后台业务代码了。

编写service层代码

首先在ItemService接口中声明一个如下方法。

/**
  * 根据ID查询商品信息
  * @param id
  * @return
  */
Item getItemById(Integer id);

如此一来,ItemService接口的内容就要变成下面这个样子了。

package com.meimeixia.springmvc.service;

import java.util.List;

import com.meimeixia.springmvc.pojo.Item;

/**
 * 商品信息业务逻辑接口
 * @author liayun
 *
 */
public interface ItemService {
   
   
	
	/**
	 * 获取商品列表
	 * @return
	 */
	List<Item> getItemList();
	
	/**
	 * 根据ID查询商品信息
	 * @param id
	 * @return
	 */
	Item getItemById(Integer id);
	
}

然后,在以上接口的实现类(ItemServiceImpl.java)中实现以上方法,即在ItemServiceImpl实现类中添加一个如下方法。

@Override
public Item getItemById(Integer id
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李阿昀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值