Java如何接收前端easyui?datagrid傳遞的數(shù)組參數(shù)
這篇文章分享一下怎么在easyui的datagrid刷新表格時(shí),在后端java代碼中接收datagrid傳遞的數(shù)組參數(shù)。
數(shù)組來(lái)源于技能的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;
}
});然后頁(yè)面上方的搜索按鈕綁定刷新表格事件,會(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通過(guò)List<Integer> skillIds參數(shù)接收,點(diǎn)擊搜索按鈕居然報(bào)錯(cuò)了,不能把String轉(zhuǎn)為L(zhǎng)ist<Integer>

這時(shí)候就要借助spring的轉(zhuǎn)換器來(lái)完成類(lèi)型轉(zhuǎn)換了,創(chuàng)建一個(gè)Converter的實(shí)現(xiàn)類(lèi),并聲明為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ù)組所有元素通過(guò)一個(gè)字符連接起來(lái),然后在后端通過(guò)相同的字符分割,也能得到想要的數(shù)組。(博主一開(kāi)始也是這么實(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)文章
Intellij IDEA導(dǎo)入eclipse web項(xiàng)目的操作步驟詳解
Eclipse當(dāng)中的web項(xiàng)目都會(huì)有這兩個(gè)文件,但是idea當(dāng)中應(yīng)該是沒(méi)有的,所以導(dǎo)入會(huì)出現(xiàn)兼容問(wèn)題,但是本篇文章會(huì)教大家如何導(dǎo)入,并且導(dǎo)入過(guò)后還能使用tomcat運(yùn)行,需要的朋友可以參考下2023-08-08
JAVA如何定義構(gòu)造函數(shù)過(guò)程解析
這篇文章主要介紹了JAVA如何定義構(gòu)造函數(shù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Java中String的intern()方法詳細(xì)說(shuō)明
這篇文章主要介紹了Java中String的intern()方法詳細(xì)說(shuō)明,String::intern()是一個(gè)本地方法,他的作用就是如果字符串常量池中已經(jīng)包含了一個(gè)等于此String對(duì)象的字符串,則返回代表池中的這個(gè)字符串額String對(duì)象的引用,需要的朋友可以參考下2023-11-11
java中用float時(shí),數(shù)字后面加f,這樣是為什么你知道嗎
這篇文章主要介紹了java用float時(shí),數(shù)字后面加f,這樣是為什么你知道嗎?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot數(shù)據(jù)校驗(yàn)及多環(huán)境配置的問(wèn)題詳解
這篇文章主要介紹了SpringBoot數(shù)據(jù)校驗(yàn)及多環(huán)境配置,本文以SpringBoot-02-Config 項(xiàng)目為例,給大家詳細(xì)介紹,需要的朋友可以參考下2021-09-09
淺談Java設(shè)計(jì)模式之原型模式知識(shí)總結(jié)
Java原型模式主要用于創(chuàng)建重復(fù)的對(duì)象,同時(shí)又能保證性能,這篇文章就帶大家仔細(xì)了解一下原型模式的知識(shí),對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05

