【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>

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • IIC通信协议详解

    IIC通信协议详解IIC通信协议详解IIC的概述IIC分为软件IIC和硬件IICIIC通信协议空闲状态开始信号与停止信号开始信号程序:IIC的概述IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbs以上。时钟线SCL:在通信过程起到控制作用。数据线SDA:用来一位一位的传送数据。IIC分为软件IIC和硬件IIC软件IIC:软件IIC通信指的是用单片机的两个I/O端口模拟出来的IIC,用

  • Adobe dreamweaver CS6小白入门教程「建议收藏」

    Adobe dreamweaver CS6小白入门教程「建议收藏」1.界面认识2.创建站点:(针对复杂网站使用)站点是一系列文档的组合,这些文档通过各种链接建立逻辑关联。是管理网页文档场所。DWCS6是一个站点创建和管理工具,使用它不仅可以创建单独文档,还可以创建完整的站点。创建网页:新建。3.管理站点的操作:打开站点、编辑站点、删除站点、复制站点、导入导出站点4.管理站点中的文件1.创建文件夹和文件…

  • Faster-RCNN算法精读[通俗易懂]

    Faster-RCNN算法精读[通俗易懂]读论文:《FasterR-CNN:TowardsReal-TimeObjectDetectionwithRegionProposalNetworks》摘要:算法主要解决两个问题:1、提出区域建议网络RPN,快速生成候选区域;2、通过交替训练,使RPN和Fast-RCNN网络共享参数。一、RPN网络结构RPN网络的作用是输入一张图像,输出一批矩形候选区域

  • python中关于round函数的小坑「建议收藏」

    python中关于round函数的小坑「建议收藏」round函数很简单,对浮点数进行近似取值,保留几位小数。比如第一个参数是一个浮点数,第二个参数是保留的小数位数,可选,如果不写的话默认保留到整数。这么简单的函数,能有什么坑呢?1、round的

  • 失去焦点和获得焦点发生事件(js)

    失去焦点和获得焦点发生事件(js)失去焦点:onblur=”hanshu(this)”获得焦点:onfocus=”hanshu(this)”{     alert(‘请确认您输入格式是否正确!’);   }//函数名:chksafe//功能介绍:检查是否含有,//,///参数说明:要检查的字符串//返回值:0:是 1:不是functionchksafe(a)

  • macos安装svn软件_windows安装svn服务器

    macos安装svn软件_windows安装svn服务器我们都知道在Windows安装SVN客户端一般都用TortoiseSVN,在MACOS上也有一个类似TortoiseSVN的,就是SnailSVNLite,它的操作跟TortoiseSVN很像,关键还是免费的。安装过程:1.从AppStore上下载SnailSVNLite。2.下载完成,打开软件,在【SVN设置】下,看下面提示设置好3个路径①~/.ssh查找对应的文件夹,如…

    2022年10月20日

发表回复

您的电子邮箱地址不会被公开。

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