Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

How to access suffixes from HTL/Sightly?

Avatar

Level 7

TLDR: Create a new AEM page called "mypage.html". Supply suffixes in the URL. Pass this suffixes to an Sling servlet. The suffixes act as URL parameters.

sample desired URL: http://localhost:4502/mypage.html/john/smith

-------------------------------------------------

So I created a servlet (used this guide: http://www.aemcq5tutorials.com/tutorials/sling-servlet-in-aem/) that can read a suffix.

    @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("/");

and it working fine if I access it via http://localhost:4502/content/geometrixx/en.name.html/first/last

What I want to do next is create a new page called "mypage.html" and supply first and last as suffixes.

mypage will display information relevant to the person in a properly formatted page. **With code above, all I get is JSON response.**

Some assumptions/changes which I think is needed to achieve my goal:

1. I will be using paths and using request parameters (i.e. using request.getParameter("myparameter") on servlet code

2. I will be using AJAX to access the servlet

If my assumptions are correct, how do I access suffixes from HTL/Sightly? I understand I can get the URI via ${request.requestURI} or even Javascript. And using this value, I can then use this in my AJAX call.

But is this the AEM/Sling way of doing it? Or perhaps there is a better way to do what I want?

Thanks a lot!

1 Reply

Avatar

Level 10

You can use ${request.requestPathInfo.suffix} to access suffix in HTL