【问题标题】:AEM: getting current locale from $PATHAEM:从 $PATH 获取当前语言环境
【发布时间】:2016-03-10 12:30:28
【问题描述】:

我正在使用选择器 + 请求参数读取下拉列表的值。

/bin/services/myservlet.GET_DROPDOWN_VALUES.json?locale=$PATH

$PATH 给了我currentPath.path。我可以使用路径获取当前语言环境。

例如:

/bin/services/myservlet.GET_DROPDOWN_VALUES.json?locale=en-us

如何仅从 $PATH 返回语言环境并将其传递给语言环境。这将解决问题。

【问题讨论】:

  • 您的问题到底是什么?尽管有几点说明:带有路径的“SlingServlet”不能使用选择器。使用“resourceTypes”,然后您就已经有了当前页面的路径,并且可以从那里读出语言。

标签: content-management-system aem


【解决方案1】:
Resource resource = resourceResolver.getResource(path);
if (resource != null) {
    Page targetPage = resource.adaptTo(Page.class);
    if (targetPage != null) {
        Locale pageLocale = targetPage.getLanguage(true);
        String countryLocale = pageLocale.getCountry();
    }
}

【讨论】:

    【解决方案2】:

    使用 $PATH 检索语言环境

    /bin/services/myservlet.GET_DROPDOWN_VALUES.json?locale=$PATH
    
    
    String compNodePath = (String) request.getParameter("locale");  
    String pagePath = StringUtils.substringBefore(compNodePath, "jcr:content");  
    PageManager pageMgr = request.getResourceResolver().adaptTo(PageManager.class);  
    Page page = pageMgr.getContainingPage(pagePath);  
    Locale pageLocale = page.getLanguage(false);
    

    为此,页面属性中的语言字段应设置为合适的值。

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 1970-01-01
      相关资源
      最近更新 更多