Вам следует использовать метод SlingHttpServletRequest##getPathInfo
, унаследованный от HttpServletRequest
В вашем примере, если вы делаете запрос на:
http://localhost:4502/content/myapp/home.test1.html
Затем в классе вашего компонента (Use / SlingModel) вы можете вызвать request.getPathInfo()
, который вернет: /content/myapp/home.test1.html
Затем вы можете проанализировать этот путь, используя: com.day.cq.commons.PathInfo
Вот пример модели слинга:
package com.mycom.core.models;
import com.day.cq.commons.PathInfo;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.injectorspecific.Self;
@Model(adaptables = SlingHttpServletRequest.class,
defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class SampleModel {
@Self
SlingHttpServletRequest request;
public PathInfo getPathInfo() {
return new PathInfo(request.getPathInfo());
}
}
, тогда в своем HTML вы можете сделать:
<sly data-sly-use.sample="com.mycom.core.models.SampleModel"/>
<div>${sample.pathInfo.selectors @ join=', '}</div>
Anчто будет выводить: (на основе вашего примера пути)
<div>test1</div>