前端JS传递参数到后端接口查询数据:解决mTypeId查询问题

问题背景:

在前端代码中,使用Ajax请求调用后端接口/warehousing/mineraltype/list,传递mTypeId=1作为查询参数,但接口却返回了全部数据,并没有根据mTypeId进行筛选。

问题分析:

  1. 后端接口接收参数: 在后端接口list()方法中,虽然传入了一个VmMineralType对象作为参数,但是并没有给这个对象的mTypeId属性赋值。因此,在查询时并没有根据mTypeId进行筛选,而是返回了全部数据。

  2. 前端传递参数: 前端代码中,vmMineralType对象中定义了mTypeId: 1,但并没有将该对象正确地传递给后端接口。

解决方案:

  1. 修改后端接口: 在后端接口list()方法中,需要获取VmMineralType对象的mTypeId属性,并根据该值进行查询。

  2. 修改前端代码: 将vmMineralType对象作为data参数传递给$.ajax()方法。

代码示例:

前端代码:

formatter: function (value, row, index){    
    var mineralTypeName = '';
    var vmMineralType = {
        mTypeId: 1 // 将mTypeId赋值为1
    };
    $.ajax({
        url: ctx + 'warehousing/mineraltype/list',
        type: 'post',
        data: vmMineralType, // 将vmMineralType作为参数传递
        async: false,
        success: function(result) {
            if (result.code == web_status.SUCCESS) {
                mineralTypeName = result.data.mineralTypeName;
            }
        }
    })
    return mineralTypeName;
}

后端代码:

@Controller
@RequestMapping("/warehousing/mineraltype")
public class VmMineralTypeController extends BaseController
{
    @Autowired
    private IVmMineralTypeService vmMineralTypeService;

    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(VmMineralType vmMineralType)
    {
        startPage();
        List<VmMineralType> list = vmMineralTypeService.selectVmMineralTypeList(vmMineralType);
        return getDataTable(list);
    }
}

解释:

  1. 在前端代码中,将vmMineralType对象作为data参数传递给$.ajax()方法,这样后端接口就能接收到该对象。

  2. 在后端代码中,list()方法接收vmMineralType对象,并通过vmMineralType.mTypeId获取mTypeId的值,然后根据该值进行查询。

注意:

  • 前端代码中的async: false设置了同步请求,保证数据获取成功后再进行表格展示。
  • 后端代码中的startPage()方法用于开启分页查询。

通过以上修改,前端JS就能将mTypeId作为参数传递到后端接口,并根据该值进行数据筛选。

总结:

  • 前后端代码的交互需要保持一致,确保参数传递正确。
  • 后端接口需要根据传递的参数进行逻辑判断,并返回正确的结果。
  • 前端代码需要处理后端返回的结果,并进行相应的展示。
前端JS传递参数到后端接口查询数据:解决mTypeId查询问题

原文地址: https://www.cveoy.top/t/topic/nALu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录