mtjmtj7的小站
mtjmtj7的小站
© mtjmtj7
All Rights Reserved.

路径导航的个人见解

项目背景

类似目录树结构 如:

  • 软件工程学概论:
    • 软件的基本概念
    • 软件与软件特性
    • 软件的分类
    • 。。。
  • 软件危机
    • 软件危机的真正含义
    • 软件危机的具体表现
    • 。。。

因为返回视图只有一个main.jsp (当然不是我的项目 ! )

效果如下:

1551256826272)


解决思路:

  1. url与文字的解决: 我们可以在超链接中传入两个参数,分类ID与标题。因为一个ID对应一个分类

  2. 后台处理: 为了保证有序性与唯一性(在点击前面的超链接 再跳转时后面应该置空

    ​ 所以我选择了一个list记录传入的ID,同时使用map记录ID对应的title。

    ​ 当传入一个ID与title时,先判断该ID是否已经存在,如果没有,则ID加入list,map添加ID,title

    如果已经存在该ID,找到该ID之后的id,从map中移除。

代码:

Map<Integer, String> map = new LinkedHashMap<>();
    List<Integer> lvlist = new ArrayList<>();
    @RequestMapping(value = "nextlevel", method = RequestMethod.GET)
    public String findnextlevel(@RequestParam("preid") int preid, @RequestParam("title") String title, HttpSession session) {
        map.put(preid, title);
        if(!lvlist.contains(preid)) {
            lvlist.add(preid);
        }
        else {
            int flag= lvlist.indexOf(preid);
            Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator(); 
            for(int i=flag+1;i<=lvlist.size()-1;i++) {
                map.remove(lvlist.get(i));
            }
        }
        //省略的其他操作
        ...
        session.setAttribute("map", map);
        return "main";
    }

jsp代码:

<div class="panel-heading">Catalog/
                <c:forEach var="l" items="${map}">
                        <a href="nextlevel?preid=${l.key}&title=${l.value}"> ${l.value} </a>/
                </c:forEach>
            </div>

欢迎补充

打赏
2019-02-27
59 阅读
关键字: ,
暂无评论

发表评论