Java如何接收前端easyui?datagrid傳遞的數(shù)組參數(shù)
這篇文章分享一下怎么在easyui的datagrid刷新表格時(shí),在后端java代碼中接收datagrid傳遞的數(shù)組參數(shù)。
數(shù)組來源于技能的tagbox(標(biāo)簽框),tagbox和combobox的區(qū)別是tagbox可以選擇多項(xiàng)。

標(biāo)簽框渲染的代碼為
$("#skill_ids").tagbox({
url: "/chongwu_skill_category/selectAll",
valueField: "id",
textField: "name",
width: 300,
hasDownArrow: true,
groupField: "type",
panelHeight: "auto",
prompt: "--請(qǐng)選擇技能--",
groupFormatter: function(group){
return "<span class='red'>" + skillTypes[group] + "</span>";
},
formatter: function(row) {
return "<img width='18' src='" + row.image + "' /> " + row.name;
}
});然后頁面上方的搜索按鈕綁定刷新表格事件,會(huì)獲取3個(gè)下拉框的值并傳到后端。
$("#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
});
});但是傳遞參數(shù)的時(shí)候,發(fā)現(xiàn)參數(shù)的格式和我們想要的不太一樣

參數(shù)名居然帶了一個(gè)數(shù)組的[],很顯然這不是我們想要的結(jié)果。
改進(jìn)后的代碼
$("#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)
});
});此時(shí)參數(shù)格式是正確的,把數(shù)組轉(zhuǎn)成了json格式的字符串。

然后在后端java通過List<Integer> skillIds參數(shù)接收,點(diǎn)擊搜索按鈕居然報(bào)錯(cuò)了,不能把String轉(zhuǎn)為L(zhǎng)ist<Integer>

這時(shí)候就要借助spring的轉(zhuǎn)換器來完成類型轉(zhuǎn)換了,創(chuàng)建一個(gè)Converter的實(shí)現(xiàn)類,并聲明為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>的轉(zhuǎn)換器
* @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);
}
}重啟項(xiàng)目,重新查詢一次,這一次成功了,查詢到符合條件的唯一一條數(shù)據(jù)。

上面已經(jīng)提供了完美的解決方案,當(dāng)然,方案不唯一,可以把數(shù)組所有元素通過一個(gè)字符連接起來,然后在后端通過相同的字符分割,也能得到想要的數(shù)組。(博主一開始也是這么實(shí)現(xiàn)的)
到此這篇關(guān)于java接收前端easyui datagrid傳遞的數(shù)組參數(shù)的文章就介紹到這了,更多相關(guān)java easyui datagrid傳遞的數(shù)組參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring定時(shí)任務(wù)執(zhí)行兩次及tomcat部署緩慢問題的解決方法
這篇文章主要給大家介紹了關(guān)于spring定時(shí)任務(wù)執(zhí)行兩次及tomcat部署緩慢問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
JeecgBoot框架升級(jí)至Spring?Boot3的實(shí)戰(zhàn)步驟
本文主要介紹了JeecgBoot框架升級(jí)至Spring?Boot3的實(shí)戰(zhàn)步驟,從?2.7.10升級(jí)到3.1.5有以下幾個(gè)點(diǎn)需要注意,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下2024-04-04
Java volatile關(guān)鍵字原理剖析與實(shí)例講解
volatile是Java提供的一種輕量級(jí)的同步機(jī)制,Java?語言包含兩種內(nèi)在的同步機(jī)制:同步塊(或方法)和?volatile?變量,本文將詳細(xì)為大家總結(jié)Java volatile關(guān)鍵字,通過詳細(xì)的代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
SpringBoot利用dynamic-datasource-spring-boot-starter解決多數(shù)據(jù)源問題
dynamic-datasource-spring-boot-starter 是一個(gè)用于在 Spring Boot 項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換的工具,下面我們看看如何使用dynamic-datasource-spring-boot-starter解決多數(shù)據(jù)源問題吧2025-03-03
有關(guān)tomcat內(nèi)存溢出的完美解決方法
下面小編就為大家?guī)硪黄嘘P(guān)tomcat內(nèi)存溢出的完美解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05

