电商四十四、模板管理------------关联规格下拉列表(后端支撑)和关联规格下拉列表(前端代码)

①模板管理----------关联规格下拉列表(后端支撑)

一、后端代码编写,在dao数据访问层,我们要写在规格(specification)的mapper(TbSpecificationMapper.xml)里面,查询数据库tb_specification表--------返回Map集合idtext,而不是idspec_name。需设置别名。用dao层(数据访问层)原始方法,返回的是idspec_namejson形式。而我们需要的是idtextjson形式。所以需要设置别名并在数据访问层(dao层)重新添加select语句。
电商四十一已经完成了关联品牌brand)下拉列表和关联规格specification)下拉列表的显示。但下拉列表的数据是静态的(写死了)。因为将变量定义死了。

现在需要后端的代码可以从数据库表中抓取(用select语句查询)数据[ ]

具体的是:

要求后端代码可以从表tb_brand中抓取(用select语句查询)数据格式:方法一格式:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]或者方法二格式:{data:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]}的对象格式。然后再在前端对数据进行封装。

要求后端代码可以从表tb_specification中抓取(用select语句查询)数据格式:方法一格式:[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]或者方法二格式:{data:[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]}的对象格式。然后再在前端对数据进行封装。

我们在后端代码从表tb_brand表tb_specification中抓取(用select语句查询)数据格式,用方法一格式,即用select选择语句(查询表内容的语句)得到[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........]和[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]格式。
表tb_specification:

调用默认的select查询,得到的是idspec_name但是,方法一的数据格式是:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'中兴'}.........] ,所以spec_name要换成别名text。而且每一个idtext(spec_name)放在Map中。最后形成一个Map集合List<Map>Map中一个id对应一个text

select id,spec_name as text from tb_specification

需要在数据访问(dao)层,新建这么一个select语句。在dao层(数据访问层),直接返回一个Map集合idtb_specification表idkeytexttext的值为tb_specification表spec_name值。

查询(select)的是规格(specification)数据,我们要写在规格(specification)的mapper(TbSpecificationMapper.xml)里面。

二、后端代码编写,我们要在dao层(数据访问层)的接口TbSpecificationMapper.java中定义方法属性。

TbSpecificationMapper.xml文件中:

<select id="selectOptionList" resultType="java.util.Map">
      select id,spec_name as text from tb_specification
</select>

这个id的值selectOptionList,是接口TbSpecificationMapper.java中的方法属性的名称


三、后端代码编写,写service层(服务层)的接口层(interface层)。

 

四、后端代码编写,写service层(服务层)的实现层(implements层)。

五、后端代码编写,控制(controller)层即web层。

六、测试:看一下生成的json数据是不是[{"id":27,"text":"网络"},{"id":32,"text":"机身内存"}.........]的格式。
installbuild以后,在浏览器地址栏输入:http://localhost:9101/specification/selectOptionList.do

在浏览器界面是不是得到数据库tb_specification表格的数据。

②模板管理----------关联规格下拉列表(前端代码)

一、前端代码的service层(服务层)编写。写在哪里去访问后端地址呢?因为是查询规格(specification)下拉列表数据,所以应该扩充写在specificationService.js文件中,而不是写在typeTemplateService.js文件(模板管理的js)中。

 

二、前端代码控制层(controller层)。写在哪一个控制层呢?这个时候应该写在typeTemplateController.js控制层,而不是brandController.js控制层了。

有一个小问题:

如果不写$scope.specificationList = {data:[ ]};则会在浏览器产生空(null)的错误。

但对列表数据仍然可以进行选择。

代码洁癖的话,写上以上代码即可。

三、在前端的HTML文件中调用一下前端控制层(controller层)的$scope.findSpecList方法。

 

四、测试

installbuild后,在浏览器地址框输入:http://localhost:9101/admin/type_template.html

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值