Как получить доступ к суффиксам, используя HTL / Sightly? - PullRequest
0 голосов
/ 09 мая 2018

TLDR: создайте новую страницу AEM под названием «mypage.html». Поставьте суффиксы в URL. Передайте эти суффиксы сервлету Sling. Суффиксы действуют как параметры URL.

образец желаемого URL: http://localhost:4502/mypage.html/john/smith


Итак, я создал сервлет (использовал это руководство: http://www.aemcq5tutorials.com/tutorials/sling-servlet-in-aem/), который может читать суффикс.

@SuppressWarnings("serial")
@SlingServlet(paths="geometrixx/components/hompepage", selectors="name", extensions="html",methods="GET", metatype=true)
public class StaffProfileServlet extends SlingAllMethodsServlet {
    private static final Logger log = LoggerFactory.getLogger(CourseBookmarkServlet.class);

    @Override
    protected void doGet(final SlingHttpServletRequest request,
                         final SlingHttpServletResponse response) throws ServletException, IOException {
        RequestPathInfo rpi = request.getRequestPathInfo();
        String[] suffixes = rpi.getSuffix().split("/");

и он работает нормально, если я получаю к нему доступ через http://localhost:4502/content/geometrixx/en.name.html/first/last

Далее я хочу создать новую страницу с именем «mypage.html» и указать в качестве суффикса первый и последний.

Моя страница будет отображать информацию, относящуюся к человеку на правильно отформатированной странице. С кодом выше все, что я получаю, это ответ JSON.

Некоторые предположения / изменения, которые, на мой взгляд, необходимы для достижения моей цели:

  1. Я буду использовать пути и параметры запроса (то есть, используя request.getParameter ("myparameter") для кода сервлета
  2. Я буду использовать AJAX для доступа к сервлету

Если мои предположения верны, как мне получить доступ к суффиксам из HTL / Sightly? Я понимаю, что могу получить URI через $ {request.requestURI} или даже через Javascript. И используя это значение, я могу использовать его в своем вызове AJAX.

Но так ли это AEM / Sling? Или, может быть, есть лучший способ сделать то, что я хочу?

Большое спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

Вы можете использовать RequestPathInfo интерфейс из HTL для доступа к суффиксам. $ {Request.requestPathInfo.suffix}

Глобальные объекты доступны через HTL -> здесь .

Методы, доступные через объект запроса -> здесь .

...