## 淘淘商城项目——轮播广告实现及踩坑

说下实现思路:

1. 查看jsp页面发现
2. 在这里插入图片描述
是一串json数据。
用工具查看格式如下:

在这里插入图片描述
实现分析:
1,不需要使用dao层
2,servcie层
调用发布的服务(rest)根据内容分类ID查询内容管理系统的内容

因为要用到 HttpClient ,先配置一个URL用来调用。
在这里插入图片描述
然后实现:

@Service
public class ContentServiceImpl implements ContenService {
	@Value("${REST_BASE_URL}")
	
	private String REST_BASE_URL;
	
	@Value("${REST_INDEX_AD_URL}")
	private String REST_INDEX_AD_URL;

@Override
	public String getContentList() {
		//调用服务层的服务
		String result = HttpClientUtil.doGet(REST_BASE_URL + REST_INDEX_AD_URL);
		//把字符串转换成TaotaoResult
		try {
			TaotaoResult taotaoResult = TaotaoResult.formatToList(result, TbContent.class);
			//取内容列表
			List<TbContent> list = (List<TbContent>) taotaoResult.getData();
			List<Map> resultList = new ArrayList<>();
 			//创建一个jsp页码要求的pojo列表
			for (TbContent tbContent : list) {
				Map map = new HashMap<>();
				map.put("src", tbContent.getPic());
				map.put("height", 240);
				map.put("width", 670);
				map.put("srcB", tbContent.getPic2());
				map.put("widthB", 550);
				map.put("heightB", 240);
				map.put("href", tbContent.getUrl());
				map.put("alt", tbContent.getSubTitle());
				resultList.add(map);
			}
			return JsonUtils.objectToJson(resultList);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}

}


@Controller

public class contentController {
	@Autowired
	private ContenService contenService;

	@RequestMapping("/index")
	public String showIndex(Model model) {
		String adJson = contenService.getContentList();
		model.addAttribute("ad1", adJson);
		return "index";

	}

}

运行:报错
空指针
空指针异常,分析 debuug 查出 taotaorest 没有值,进一步分析得出 是 result 没有取到值。在到页面按F12报了一些古怪的语法错误。前台页面不显示。
后面发现是我在这里插入图片描述
少写一个 $符号,导致IP路径不能取到配置的信息。再用postman测试接口
在这里插入图片描述
能看到接口是通的,但是前台还是没有展示

无奈看后台管理页面发现内容管理模块 广告这里的层级不对。因为我已经修改过来下图是对的层级。
在这里插入图片描述
在这里插入图片描述
通过这个层级关系添加的内容会保证数据库的内容与配置信息里面的ID一致(89)
在这里插入图片描述
这样在刷新前台发现:在这里插入图片描述
广告已经展示出来了。
自己是个新手,所有很多时候只能一点点摸索,写出来记录一下,我在搜索的时候发现也有遇到这个问题空指针的同学。可以做个参考!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值