Java如何接收前端easyui datagrid传递的数组参数

 更新时间:2023年11月16日 17:19:28   作者:沐雨橙风ιε  
这篇文章分享一下怎么在easyui的datagrid刷新表格时,在后端java代码中接收datagrid传递的数组参数,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧

这篇文章分享一下怎么在easyui的datagrid刷新表格时,在后端java代码中接收datagrid传递的数组参数。

数组来源于技能的tagbox(标签框),tagbox和combobox的区别是tagbox可以选择多项。

标签框渲染的代码为

    $("#skill_ids").tagbox({
		url: "/chongwu_skill_category/selectAll",
		valueField: "id",
		textField: "name",
		width: 300,
		hasDownArrow: true,
		groupField: "type",
		panelHeight: "auto",
		prompt: "--请选择技能--",
		groupFormatter: function(group){
	        return "<span class='red'>" + skillTypes[group] + "</span>";
	    },
		formatter: function(row) {
			return "<img width='18' src='" + row.image + "' />&nbsp;" + row.name;
		}
	});

然后页面上方的搜索按钮绑定刷新表格事件,会获取3个下拉框的值并传到后端。

    $("#search").linkbutton({
		iconCls: "icon-search"
	}).click(function() {
		let categoryId = $("#category_id").combobox("getValue");
		let roleId = $("#role_id").combobox("getValue");
		let skillIds = $("#skill_ids").tagbox("getValues");
		$("#chongwu_list").datagrid("load", {
			roleId: roleId,
			skillIds: skillIds,
			categoryId: categoryId
		});
	});

但是传递参数的时候,发现参数的格式和我们想要的不太一样

参数名居然带了一个数组的[],很显然这不是我们想要的结果。

改进后的代码

    $("#search").linkbutton({
		iconCls: "icon-search"
	}).click(function() {
		let categoryId = $("#category_id").combobox("getValue");
		let roleId = $("#role_id").combobox("getValue");
		let skillIds = $("#skill_ids").tagbox("getValues");
		$("#chongwu_list").datagrid("load", {
			roleId: roleId,
			categoryId: categoryId,
			skillIds: JSON.stringify(skillIds)
		});
	});

此时参数格式是正确的,把数组转成了json格式的字符串。

然后在后端java通过List<Integer> skillIds参数接收,点击搜索按钮居然报错了,不能把String转为List<Integer>

这时候就要借助spring的转换器来完成类型转换了,创建一个Converter的实现类,并声明为Spring组件。

package cn.edu.sgu.www.mhxysy.converter;
import com.alibaba.fastjson.JSON;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * String ==> List<FilterRule>的转换器
 * @author heyunlin
 * @version 1.0
 */
@Component
public class StringToListOfIntegerConverter implements Converter<String, List<Integer>> {
    @Override
    public List<Integer> convert(String source) {
        return JSON.parseArray(source, Integer.class);
    }
}

重启项目,重新查询一次,这一次成功了,查询到符合条件的唯一一条数据。

上面已经提供了完美的解决方案,当然,方案不唯一,可以把数组所有元素通过一个字符连接起来,然后在后端通过相同的字符分割,也能得到想要的数组。(博主一开始也是这么实现的)

到此这篇关于java接收前端easyui datagrid传递的数组参数的文章就介绍到这了,更多相关java easyui datagrid传递的数组参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于SpringBoot加载Mybatis的TypeAlias问题

    基于SpringBoot加载Mybatis的TypeAlias问题

    这篇文章主要介绍了解决SpringBoot加载Mybatis的TypeAlias问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Spring使用@Autowired注解实现自动装配方式

    Spring使用@Autowired注解实现自动装配方式

    这篇文章主要介绍了Spring使用@Autowired注解实现自动装配方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 关于Spring Boot获取bean的3种方式

    关于Spring Boot获取bean的3种方式

    这篇文章主要介绍了关于Spring Boot获取bean的3种方式,在spring中ApplicationContext这个上下文对象是获取bean的基础,需要的朋友可以参考下
    2023-04-04
  • CentOS安装solr 4.10.3详细教程

    CentOS安装solr 4.10.3详细教程

    这篇文章主要为大家详细介绍了CentOS安装solr 4.10.3的详细教程 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 一文让你搞懂如何手写一个redis分布式锁

    一文让你搞懂如何手写一个redis分布式锁

    既然要搞懂Redis分布式锁,那肯定要有一个需要它的场景。高并发售票问题就是一个经典案例。本文就来利用这个场景手写一个redis分布式锁,让你彻底搞懂它
    2022-11-11
  • 在Java中实现让线程按照自己指定的顺序执行

    在Java中实现让线程按照自己指定的顺序执行

    这篇文章主要介绍了在Java中实现让线程按照自己指定的顺序执行,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java 高并发四:无锁详细介绍

    Java 高并发四:无锁详细介绍

    本文主要介绍Java 高并发无锁的知识,这里整理了 1.无锁类的原理详解 2.无锁类的使用的知识,并讲解其原理,有需要的小伙伴可以参考下
    2016-09-09
  • 浅谈Java编程中的内存泄露情况

    浅谈Java编程中的内存泄露情况

    这篇文章主要介绍了Java编程中的内存泄露情况,牵扯到JVM的垃圾回收相关知识,需要的朋友可以参考下
    2015-10-10
  • Java Http接口加签、验签操作方法

    Java Http接口加签、验签操作方法

    下面小编就为大家带来一篇Java Http接口加签、验签操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • JVM分配和回收堆外内存的方式与注意点

    JVM分配和回收堆外内存的方式与注意点

    JVM启动时分配的内存称为堆内存,与之相对的,在代码中还可以使用堆外内存,比如Netty,广泛使用了堆外内存,下面这篇文章主要给大家介绍了关于JVM分配和回收堆外内存的方式与注意点,需要的朋友可以参考下
    2022-07-07

最新评论