【FAQ】SpingMVC实现集合參数(Could not instantiate bean class [java.util.List])

【FAQ】SpingMVC实现集合參数(Could not instantiate bean class [java.util.List])

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

需求,要求批量新增或者改动一个List,在Spring MVC中是不支持以下代码的写法

	@RequestMapping(value = "/update", method = RequestMethod.POST)
	public String update(List<ProductCollocation> productCollocations ,HttpServletRequest request, RedirectAttributes redirectAttributes) {
		for (ProductCollocation productCollocation : productCollocations) {
			productCollocation.setModifyDate(DateUtil.getDate());
			productCollocationService.update(productCollocation, "create_date","product","collocation","description");
		}
		addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
		return "redirect:list.jhtml";
	}

会抛出异常

nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [java.util.List]: 

是否事实上也非常easy,Spring MVC 须要支持Form表单对象的方式映射,使用get set器来填充对象。

新增一个Form

public class ProductCollocationForm {
	List<ProductCollocation> productCollocations;

	/**
	 * @return the productCollocations
	 */
	public List<ProductCollocation> getProductCollocations() {
		return productCollocations;
	}

	/**
	 * @param productCollocations the productCollocations to set
	 */
	public void setProductCollocations(List<ProductCollocation> productCollocations) {
		this.productCollocations = productCollocations;
	}
}

再使用Form来set对象

	@RequestMapping(value = "/update", method = RequestMethod.POST)
	public String update(ProductCollocationForm productCollocationForm ,HttpServletRequest request, RedirectAttributes redirectAttributes) {
		for (ProductCollocation productCollocation : productCollocationForm.getProductCollocations()) {
			productCollocation.setModifyDate(DateUtil.getDate());
			productCollocationService.update(productCollocation, "create_date","product","collocation","description");
		}
		addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
		return "redirect:list.jhtml";
	}

前台就能够使用索引的方式对后台对象设置值了

<td>
				   <input type="text" name="productCollocations[${productCollocation_index}].displayName" class="text" maxlength="200"  style="width:100px"  value="${productCollocation.displayName}"/>
				   <input type="hidden" name="productCollocations[${productCollocation_index}].id" class="text" maxlength="200" value="${productCollocation.id}"/>
				</td>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118343.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月7日 下午1:00
下一篇 2021年12月7日 下午2:00


相关推荐

  • 卸载jdk1.7

    卸载jdk1.7卸载jdk1.7:1、开始->程序->控制面板->卸载程序->程序和功能2、找到jdk的两个程序:java7update45和java(TM)SEDevelopmentKit73、右键->卸载转载于:https://www.cnblogs.com/Noul/p/10406623.html…

    2022年6月25日
    56
  • 详解词袋模型

    详解词袋模型个人博客 http www chenjianqu com 原文链接 http www chenjianqu com show 101 html 本文是 视觉 SLAM14 讲 的学习笔记 今天学习到词袋模型 可以用来计算图像间的相似度 基本概念词袋 Bag of Words BoW 是用 图像上有哪几种特征 来描述一个图像的方法 图像的词袋模型可以度量两个 视觉 SLAM14 讲

    2026年3月18日
    2
  • 常用的录屏软件_windows10录屏

    常用的录屏软件_windows10录屏什么录屏软件既免费又好用?要用到录屏软件的原因有很多,比如需要:制作产品展示视频、提供技术支持或使用视频通话,但使用电脑的系统录屏软件,可不足以录制高质量的视频。无论你想截取整个屏幕或者部分屏幕,通过高质量的录屏软件都可以实现。关于录屏软件屏幕记录软件可以录制电脑或移动设备的屏幕,包括鼠标点击以及触屏的动作都能被记录下来,还能录制音频。世界上没有两个完全相同的录屏工具。因此,在设备上下载或安装录屏…

    2026年3月3日
    9
  • 关于光模块用单模光纤和多模光纤小知识

    关于光模块用单模光纤和多模光纤小知识通过对光纤的认知 我们了解到光纤是通过导光来传输信号 不导电 不怕雷击 所以也不需要用接地保护 我们按光在光纤中的传输模式分为 多模光纤和单模光纤 对于我们使用者来说 你把多模和单模名称由来记住就可以了 接下来就由飞畅科技的小编来为大家详细介绍下单模光纤和多模光纤 一起来看看吧 多模光纤 可以传输多种模式的光 单模光纤 只能传输一种模式的光 多模光纤传输的距离比较近 通常单模光纤传输距离可以达到多模光纤的几十倍 单模价格一般比多模光纤价格贵 使用光纤的优势还包括 1 当信息点传输距离大于

    2026年3月26日
    2
  • Linux内核简介

    Linux内核简介大纲:理解Linux内核最好预备的知识点Linux内核的特点Linux内核的任务内核的组成部分哪些地方用到了内核机制?Linux进程 Linux创建新进程的机制Linux线程 内核线程地址空间与特权级别    虚拟地址与物理地址  特权级别(Linux的两种状态)    系统调用设备驱动程序、块设备和字符设备网络文件系统模块和热插拔注:本文为《深入Linux内核架构》的学习笔记理解Linux…

    2022年7月23日
    13
  • OHEM的pytorch代码实现细节

    OHEM的pytorch代码实现细节详细解读一下OHEM的实现代码:defohem_loss(batch_size,cls_pred,cls_target,loc_pred,loc_target,smooth_l1_sigma=1.0):”””Arguments:batch_size(int):numberofsampledroisforbboxhe…

    2022年5月29日
    104

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号