aem - AEM 内部重定向和解析嵌套内容
问题描述
我有以下内容结构。
地点
- de - category1 - 2001 - quarter1 - blog_about_vegan - blog_about_flowers - quarter2 - blog_about_something - 2002 - quarter1 - blog_about_vegan - blog_about_flowers - quarter2 - blog_about_something
我希望客户使用速记网址。例如; 客户在尝试以下 url 时应获得 blog_about_vegan:https ://www.somedomain.com/site/de/category1/blog_about_vegan 。他不应该担心年份和季度,因为它们只是用于分类。
我在 /etc/map 中配置了 sling 映射以重新映射 url 以在 /content 中搜索内容。但我无法弄清楚如何让 sling 查看特定类别的所有年份和季度文件夹以找到这篇文章。
我正在寻找具有嵌套搜索功能的动态内部重定向之类的东西。你能指教吗
解决方案
Sling RequestResolver 不会进行任何搜索或查询。因此,您需要操纵您的 URL(在网络服务器中),使其与您的 Servlet 匹配。然后您的 Servlet 将查询/解析 URL 的剩余部分并再次将呈现转发给 Sling。
我建议对类别和文章使用 Sling-Suffix。所以 AEM 中的 URL 将是http://localhost:4502/content/site/de.article-search.html/category1/blog_about_vegan
. 这很容易在 Web 服务器中完成(例如 mod_rewrite)。然后为“de”-resourceType 和选择器“article-search”注册一个 servlet。
然后request.getRequestPathInfo().getSuffix()
你可以找到文章。如果您找到页面/资源,request.getRequestDispatcher(...).forward(...)
您可以让 Sling 进行渲染。
推荐阅读
- javascript - 在Javascript Typescript中以最高优先级加载json文件
- javascript - React HoC 使用 typescript 注入 props
- mysql - 使用 express js node js 和 angular 6 与 mysql 数据库从数据库进行电子邮件验证
- graph - 关于边的节点信息
- python - 如何从我的文本文件中创建类别并计算数字的平均值?
- sql-server - 如何将 Access 查询迁移到 SQL 视图?
- java - 处理显示尺寸变化
- nlp - 将元数据添加到 word2vec 中的单词
- objective-c - 有什么方法可以在 macOS 上获取系统定义目录的本地化显示名称?
- android - 片段堆栈管理