面包屑导航

一、网站面包屑导航有哪几种类型?

1、路径型:路径型面包屑是一个动态显示用户到达页面经过的途径;

2、位置型:位置型面包屑是固定的,显示了页面在网站结构中的位置;

3、属性型:属性型面包屑给出的当前页面的分类信息。

面包屑导航一般都在导航的下面,形式一般为 首页 > 一级目录名称 > 二级目录名称 > 目前位置,尽量要把面包

屑导航的层次控制在四层以内,这样也有利与搜索引擎蜘蛛一层层往下爬,到了四层以下就很难爬到了。

二、作用分别是什么?

1、让用户了解目前所处位置,以及当前页面在整个网站中的位置。(路径型)

2、提供返回各个层级的快速入口,方便用户操作。(位置型)

3、体现了网站的架构层级,能够帮助用户快速学习和了解网站内容和组织方式(属性型)。

三、后端的面包屑导航代码;

对于属性的面包屑导航:

if(param.getAttrs() != null && param.getAttrs().size() > 0){
            //6、构建面包屑导航功能
            List<SearchResult.NavVo> collect = param.getAttrs().stream().map(attr -> {
                //1、分析每个attrs传过来的查询参数值
                SearchResult.NavVo navVo = new SearchResult.NavVo();

                String[] s = attr.split("_");
                navVo.setNavValue(s[1]);
                R r = productFeignService.attrInfo(Long.parseLong(s[0]));
                result.getAttrIds().add(Long.parseLong(s[0]));
                if(r.getCode() == 0){
                    AttrResponseVo data = r.getData("attr", new TypeReference<AttrResponseVo>() {
                    });
                    navVo.setNavName(data.getAttrName());
                } else {
                    navVo.setNavName(s[0]);
                }

                //2、取消了这个面包屑以后,我们要跳转到那个地方,将请求地址的url替换
                //拿到所有的查询条件,去掉当前
                String replace = replaceQueryString(param, attr, "attrs");
                navVo.setLink("http://search.greymall.com/list.html?"+replace);

                return navVo;
            }).collect(Collectors.toList());

            result.setNavs(collect);
        }




private String replaceQueryString(SearchParam param, String value, String key) {
        String encode = null;
        //对于URL地址有空格的特殊处理
        try {
            encode = URLEncoder.encode(value, "UTF-8");
            encode = encode.replace("+", "%20"); //浏览器对空格的编码与java不一样
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        return param.get_queryString().replace("&"+key+"=" + encode, "");
    }

对于品牌的面包屑导航:

//品牌;分类
        if(param.getBrandId() != null && param.getBrandId().size() > 0){
            List<SearchResult.NavVo> navs = result.getNavs();
            SearchResult.NavVo navVo = new SearchResult.NavVo();
            navVo.setNavName("品牌");
            //TODO 远程查询所有品牌
            R r = productFeignService.brandsInfo(param.getBrandId());
            if(r.getCode() == 0){
                List<BrandVo> brand = r.getData("brand", new TypeReference<List<BrandVo>>() {
                });
                StringBuffer buffer = new StringBuffer();
                String replace = "";
                for (BrandVo brandVo : brand) {
                    buffer.append(brandVo.getBrandName()+";");
                    replace = replaceQueryString(param,brandVo.getBrandId()+"","brandId");
                }
                navVo.setNavValue(buffer.toString());
                navVo.setLink("http://search.greymall.com/list.html?"+replace);
            }

            navs.add(navVo);
        }

        //TODO 分类;不需要导航取消

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值