代码

HTML代码

editable="true"代表该组合框可以编辑,valueField:'id'代表每个选项的值对应的是goodsType的id,textField:'name'代表我们看到的文本是goodsType的name

1
&nbsp;商品类型:&nbsp;<input class="easyui-combobox" id="s_goodsTypeId" style="width: 140px" editable="true" data-options="panelHeight:'auto',valueField:'id',textField:'name',url:'/admin/goodsType/comboList'"/>

Java代码

下面只展示GoodsType实体类和组合框请求的方法comboList,GoodsTypeMapper、GoodsTypeService和GoodsTypeServiceImpl三个类就不展示了

GoodsType实体类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.ledao.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

/**
* 商品类别实体类
*
* @author LeDao
* @company
* @create 2022-01-15 21:08
*/
@Data
@TableName(value = "t_goods_type")
public class GoodsType {

/**
* 编号
*/
@TableId
private Integer id;
/**
* 名称
*/
private String name;
/**
* 排序
*/
@TableField(value = "sortNum")
private Integer sortNum;
/**
* 分类下商品数量
*/
@TableField(exist = false)
private Integer goodsNum;
}
请求的方法comboList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package com.ledao.controller.admin;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ledao.entity.Goods;
import com.ledao.entity.GoodsType;
import com.ledao.service.GoodsService;
import com.ledao.service.GoodsTypeService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* 后台商品类别Controller层
*
* @author LeDao
* @company
* @create 2022-01-15 21:17
*/
@RestController
@RequestMapping("/admin/goodsType")
public class GoodsTypeAdminController {

@Resource
private GoodsTypeService goodsTypeService;

@Resource
private GoodsService goodsService;

/**
* 下拉框模糊查询商品类别
*
* @param q
* @return
*/
@RequestMapping("/comboList")
public List<GoodsType> comboList(String q) {
if (q == null) {
q = "";
}
QueryWrapper<GoodsType> goodsTypeQueryWrapper = new QueryWrapper<>();
goodsTypeQueryWrapper.like("name", q);
return goodsTypeService.list(goodsTypeQueryWrapper);
}
}

效果

注意事项

如果设置了组合框可以编辑且组合框的值为数字,那么就需要判断用户的输入是否正确(即:判断组合框获取到的值是否为数字),这是因为:如果组合框看到的文本在数据库中不存在时我们通过组合框获取到的值为在组合框看到的文本,这时向后端传入一个不是数字的字符串,而后端要接收的却是数字,那么后端就会报错