需求:建立年级、班级两个数据表,获取年级表信息,根据年级,获取相应的班级

效果图:

select下拉菜单实现二级联动效果

不完美的地方就是在不选择年级的时候,是不能选择任何班级的。

代码部分

首先是建立两个表的实体

需要注意的就是写注解了。代码就不贴了。

DAO层代码

年级DAO

年级的DAO层没什么代码,就是继承那三个类,具体用到哪个我也不清楚,就直接都继承了。

public interface GraceDAO extends PagingAndSortingRepository<Grace, String>,JpaSpecificationExecutor<Grace>,JpaRepository<Grace, String>
{ 
}

班级DAO

班级DAO里面就这一行代码,用的是内置的findBy方法,我的gid在数据库中是int型,在这里为了方便用的string型(我的可以实现操作,不可以的话强制转型成int就可以了,问题不大)

List<Cla> findByGid(String gid);

service层

年级

年级这里不需要有什么操作,直接查出全部就可以了,所以我就用了内置的findAll方法

@Service
public class GraceService {
 @Autowired
 private GraceDAO graceDAO;
 public List<Grace> findAll(){
 return graceDAO.findAll();
 }
}
///////下面是内置findAll方法的注释什么的。用不到,只是贴出来给大家看一下
/*
 * (non-Javadoc)
 * @see org.springframework.data.repository.CrudRepository#findAll()
 */
 List<T> findAll();

班级

班级这里要根据获取到的gid进行查询

public List<Cla> findByGid(String gid){
 return claDAO.findByGid(gid);
 }

Controller层

//查询所有年级信息
@RequestMapping("grace")
@ResponseBody
public List<Grace> grace(){
 return graceService.findAll();
}
//根据年级的gid获取班级信息
@RequestMapping("cla")
@ResponseBody
public List<Cla> cla(HttpServletRequest req){
 String gid = req.getParameter("gid");
 //System.out.println(gid);
 return claService.findByGid(gid);
}

前端代码

html部分

<div id="app">
年级:
<select v-on:change="claa()" v-model="gid">
 <option value="0">----请选择年级--- </option>
 <option v-for="gra in grac" :value="gra.gid">{{gra.gname}}</option>
</select>
班级:
<select>
 <option v-for="cl in cla">{{cl.cname}}</option>
</select>
</div>

js部分

var vm = new Vue({
el: '#app',
 data:{
 grac:[],
 cla:[],
 gid:0//可以让年级的下拉框默认选择<option value="0">----请选择年级--- </option>项
 },
 mounted(){//页面加载时开始加载下面的两个方法
 this.grace();//年级
 this.claa();//班级,为了避免class关键字,用的其他名字
 },
 methods:{//自定义方法
 grace:function(){
 $.post("/work/grace",{},function(data){
 vm.grac = data;
 });
 },
 claa:function(){
 //alert(this.gid);
 //传参:传递当前选中的gid
 $.post("/work/cla",{gid:this.gid},function(data){
 //alert(JSON.stringify(data));
 vm.cla = data;
 });
 },
 }
});

总结

以上所述是小编给大家介绍的select下拉菜单实现二级联动效果,希望对大家有所帮助!

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。