三级联动及三级联动的回显

一、实现三级联动

1.首先,准备省市县的表或者自己随便创建一个就可以,然后先创建实体类(实体类上面的三个注释会单独写篇文章讲解如何实现)

2.实现dao层 

public interface GoodsDao {
    //查询城市---三级联动
    List<City> listByCity(Integer pid);
}

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shixiaochen.dao.GoodsDao">
   <select id="listByCity" resultType="com.shixiaochen.entity.City">
        select *
        from m_city 
        where pid = #{id}
    </select>

</mapper>

3.service层

public interface GoodsService {
    //查询城市---三级联动
    List<City> listByCity(Integer pid);
}
@Service
public class GoodsServiceImpl implements GoodsService {

    @Autowired
    GoodsDao dao;

    @Override
    public List<City> listByCity(Integer pid) {
        return dao.listByCity(pid);
    }
}

4.controller层

    @ResponseBody
    @PostMapping("listByCity")
    public List<City> listByCity(Integer pid) {
        //判断reids中是否有这个key
        Boolean boo = template.hasKey("CITY_LIST" + pid);
        if (boo) {
            //redis中有
            return template.opsForList().range("CITY_LIST" + pid, 0, -1);
        } else {
            //redis没有

            //先获取
            List<City> cities = service.listByCity(pid);
            //再存储到redis中下次访问的时候就可以直接从redis中获取到
            template.opsForList().rightPushAll("CITY_LIST" + pid, cities);
            return cities;
        }

    }

5.jsp

 

 二、三级联动的回显

1.做回显一般都用于做修改,我这块也是做修改(调用的根据id查询单个数据的方法)

2.其他步骤跟上面都差不都,只不过是调用的方法不一样

 controller层

jsp(跟上面的一样就多了个ajax)

把文档就绪函数删掉换成同步请求

$.ajaxSettings.async = false;

 

 这样就实现了三级联动的回显了。

三、总结

三级联动有很多写法但是核心原理都是一样的。想要实现三级联动,首先应该了解三级联动的实现的原理,他是通过先把所有的省查出来,选中的省的id作为市的查询条件,查询到的市的id作为县的查询条件,来查询县来实现的,只要把这个理清了,就不难实现了。


                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-cascader是Element UI中的一个组件,用于实现级选择器。它可以实现多级联动,并且支持回显已选择的值。 要实现el-cascader的三级联动回显,需要以下步骤: 1. 定义数据源:首先,你需要定义一个数据源,包含三级联动的数据。每个级别的数据都是一个数组,其中包含了该级别的选项。 2. 绑定数据:将数据源绑定到el-cascader组件上,通过设置`:options`属性来实现。这样el-cascader就知道要显示哪些选项了。 3. 设置默认值:通过设置`v-model`属性,将默认值绑定到el-cascader组件上。默认值应该是一个数组,每个元素对应一个级别的选项。 4. 实现回显:当需要回显已选择的值时,只需将默认值设置为已选择的值即可。el-cascader会根据默认值自展示已选择的选项。 下面是一个示例代码,演示了如何实现el-cascader的三级联动回显: ```html <template> <el-cascader v-model="selectedValues" :options="options" :props="props" @change="handleChange" ></el-cascader> </template> <script> export default { data() { return { selectedValues: [], // 默认值,用于回显已选择的值 options: [ { value: '1', label: '选项1', children: [ { value: '1-1', label: '选项1-1', children: [ { value: '1-1-1', label: '选项1-1-1' }, { value: '1-1-2', label: '选项1-1-2' } ] }, { value: '1-2', label: '选项1-2', children: [ { value: '1-2-1', label: '选项1-2-1' }, { value: '1-2-2', label: '选项1-2-2' } ] } ] }, // 其他级别的选项... ], props: { value: 'value', label: 'label', children: 'children' } }; }, methods: { handleChange(value) { console.log('已选择的值:', value); } } }; </script> ``` 在上述示例中,`selectedValues`数组用于存储已选择的值,通过设置`v-model`将其与el-cascader组件进行绑定。`options`数组定义了三级联动的数据源,`props`对象指定了数据源中的属性名。 当需要回显已选择的值时,只需将已选择的值赋给`selectedValues`数组即可。el-cascader会根据`selectedValues`自展示已选择的选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值