mybatis结合jeefast实现联动多条件查询及传递多参数

传值过程
通过html里面的下拉框中写的v-model赋值到vm里面,在通过vm赋值给js方法,然后在传递给Controller调用方法,最后给xml执行sql语句

数据库字段
通过传递grade和school(传递多参数)判断class进行二级联动
传递多个参数就用map集合,查哪里就在那里写
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多参数的传递只改变dao层和impl层
dao层
PfClassDao(传递多参的方法)

List<PfClasses> findByClasses(Map<String,Integer> map);

PfClassesService

List<PfClasses> findByClasses(int classesSchool,int classesGrade);

PfClassesServiceImpl(覆写方法)

@Override
	public List<PfClasses> findByClasses(int classesSchool,int classesGrade) {
		Map<String,Integer> map = new HashMap<>();
		map.put("classesSchool",classesSchool);
		map.put("classesGrade",classesGrade);
		return pfClassesDao.findByClasses(map);
	}

Controller层
PfClassesContrroller

/**
	 * 表连接班级的信息-下拉框
	 */
	@RequestMapping("/findByClasses/{classesSchool}/{classesGrade}")
	@RequiresPermissions("platform:classes:findAll")
	public R findByClasses(@PathVariable("classesSchool") int classesSchool,
						   @PathVariable("classesGrade") int classesGrade){
		List<PfClasses> classesList = pfClassesService.findByClasses(classesSchool,classesGrade);
		return R.ok().put("classesList", classesList);
	}

PfGradeController

	/**
	 * 表连接年级的信息-下拉框
	 */
	@RequestMapping("/gradeList")
	@RequiresPermissions("platform:grade:info")
	public R gradeList(){
		Map<String,Object> map = new HashMap<>();
		List<PfGrade> gradeList = pfGradeService.selectByMap(map);
		return R.ok().put("gradeList", gradeList);
	}

PfSchoolController

	/**
	 * 表连接学校的信息-下拉框
	 */
	@RequestMapping("/schoolList")
	@RequiresPermissions("platform:school:info")
	public R schoolList(){
		Map<String,Object> map = new HashMap<>();
		List<PfSchool> schoolList = pfSchoolService.selectByMap(map);
		return R.ok().put("schoolList", schoolList);
	}

js页面
vm里面的参数都是自定义的,自己定义在哪就写哪里,
主要用于接收参数,和设置默认初始值
在这里插入图片描述
定义数组用于存储接受的数值(data直系下)
在这里插入图片描述
获取学校和年纪

getSchoolName: function(){//校区
			// var classesSchool=vm.q.classesSchool;
			// alert(111)
			$.post(baseURL + "platform/school/schoolList/", function(r){
				// alert(222);
				// alert(JSON.stringify(r))
				if(r.code==0){
					vm.schoolList=r.schoolList;
				}
			});
		},
getGradeName: function(){//年级
			// var classesGrade=vm.q.classesGrade;
			$.post(baseURL + "platform/grade/gradeList/", function(r){
				// alert(JSON.stringify(r))
				if(r.code==0){
					vm.gradeList=r.gradeList;
					vm.q.classesGrade = 0;
					vm.q.classesClass = '';
				}
			});
		},	

传递参数的方法(联动获取班级)

	getClassesName: function(){
			var classesSchool=vm.q.classesSchool;
			var classesGrade=vm.q.classesGrade;
			$.post(baseURL + "platform/classes/findByClasses/"+classesSchool+"/"+classesGrade, function(r){
				//alert(JSON.stringify(r))
				vm.classesList=r.classesList;
				vm.q.classesClass = 0;
			});
		},

多条件查询主要写reload方法
在这里插入图片描述

reload: function () {
			vm.showList = true;
			var page = $("#jqGrid").jqGrid('getGridParam','page');
			$("#jqGrid").jqGrid('setGridParam',{
				postData:{
					'classesClass1': vm.q.title,
					'classesSchool': vm.q.classesSchool,
					'classesGrade': vm.q.classesGrade,
					'classesClass': vm.q.classesClass,
				},
				page:page
			}).trigger("reloadGrid");
		}

html页面
数值都是通过v-model传递的(vue的双向绑定)

<div class="form-group col-sm-2">
                <select class="form-control" v-model="q.classesSchool" @change="getGradeName"  id="classesSchool">
                    <option value="0">--请选择校区--</option>
                    <option v-for="v in schoolList" :value="v.schoolId">{{v.schoolName}}</option>
                </select>
            </div>
            <div class="form-group col-sm-2">
                <select class="form-control" v-model="q.classesGrade" @change="getClassesName" id="classesGrade">
                    <option value="0">--请选择年级--</option>
                    <option v-for="v in gradeList" :value="v.gradeId">{{v.gradeName}}</option>
                </select>
            </div>
            <div class="form-group col-sm-2">
                <select class="form-control" v-model="q.classesClass" id="classesClass">
                    <option value="">--请选择班级--</option>
                    <option v-for="v in classesList" :value="v.classesClass">{{v.classesClass}}</option>
                </select>
            </div>

在这里插入图片描述
PfClassesDao.xml页面
js页面最后的reload方法赋值给谁,这里就用谁进行查询
在这里插入图片描述
最后就这样
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值