在cq5中获取选择器

Get selectors in cq5?

本文关键字:选择器 获取 cq5      更新时间:2023-09-26

如何在cq5中发送选择器到servlet ?

@SlingServlet(extensions = { "json" }, methods = { "GET" }, paths = { "/apps/itt/something" })
public class SomethingServlet        
String[] selectors = request.getRequestPathInfo().getSelectors();

在CQ5/Sling中,URI /apps/itt/something.some.selector.json将被视为

  • 路径:/apps/itt/something
  • 选择器:some.selector
  • 扩展:json

对于在CQ5中发送选择器到servlet,您需要使用选择器注册 servlet。在正确注册之后,你应该在URL中使用选择器调用servlet。

的例子:

@SlingServlet(paths = "/bin/test", selectors = {"first", "second"}, extensions = "json")
public class SelectorExampleServlet extends SlingAllMethodsServlet {
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
    PrintWriter writer = response.getWriter();
    RequestPathInfo requestPathInfo = request.getRequestPathInfo();
    String[] selectors = requestPathInfo.getSelectors();
    for (String selector : selectors) {
        writer.print(selector);
        writer.println(); // space
    }
} 
}

调用servlet示例:

  1. localhost: 4502/bin/test.first.json
  2. localhost: 4502/bin/test.first.second.json
  3. localhost: 4502/bin/测试。json(不带选择器)

如果你在servlet映射中使用'resourceTypes'而不是'paths',除了调用这个servlet的机制之外,一切都将保持不变

好运