【问题标题】:How to add breadcrumb to Spring MVC?如何将面包屑添加到 Spring MVC?
【发布时间】:2015-03-17 13:10:39
【问题描述】:

如何将面包屑添加到 Spring MVC 的所有页面?我想这是一个很好的问题,因为面包屑现在很流行,而且可能是许多其他人的问题。

我发现这个 solution 正在使用 dummiesmind.breadcrumb.springmvc.annotations,stackoverflow 上还有一个 question,但除了找到与我找到的解决方案类似的解决方案外,我无法学到很多东西。另一个解决方案是使用 JavaScript 的this one

有没有人比我提到的有更好的选择?

@Link(label="Sample Link", family="controllerFamily", parent="");                                                                  
@RequestMapping(value = "sample.do", method=RequestMethod.GET);
public ModelAndView sampleMethod(HttpSession session){...}

【问题讨论】:

  • 这是导航还是我的旅程面包屑?导航面包屑可以使用磁贴列表属性完成,在每个定义中重新定义。 my-journey 更像是一个会话对象。
  • @mck 我不确定有什么区别,但我想可以用瓷砖做的那个适合我。

标签: spring jsp spring-mvc breadcrumbs tiles-3


【解决方案1】:

您使用什么来显示您的网页? JSP ?百里香?

您指向的链接似乎是一个不错的选择,或者至少您可以在此基础上构建适合您的自定义内容。使用注解可以让您的代码保持干净,但您需要确保将它们添加到任何地方。

您可以使用抽象控制器定义一个方法来为所有页面创建ModelAndView 对象。你可以这样添加面包屑:

protected ModelAndView createModelAndView(String pageName, BreadCrumb breadCrumb) {
    ModelAndView modelAndView = new ModelAndView(pageName);
    modelAndView.addObject("breadCrumb", breadCrumb);
    return modelAndView;
}

当然,您需要在每次实现中调用该方法。

其中一种用法是将您的请求 url 作为参数传递,并通过将文本与路径的每个部分相关联(使用当前本地来解析它)来解析它以构建面包屑。因此,例如“/admin/user/list”将为您提供主页 >> 管理 >> 用户管理 >> 用户列表。这应该很容易构建。

【讨论】:

  • 我正在使用 Tiles3,JSP
  • 如果我在代码中的任何地方添加这个,它会类似于注释解决方案。这个比那个有什么优势?
  • 嗯,这只是另一种可能性。我正在使用 Thymeleaf,因此这是一种进行此类通用模型添加的便捷方式。在任何情况下,您都需要精确所有页面的结构,或者有一种方法可以通用地构建它。
  • 另一种选择是也使用参数解析器并通过给定的NativeWebRequest构建链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多