2016-03-10 36 views
0

我正在使用选择器和请求参数读取下拉值。

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

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

例如:

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

我怎样才能从$ PATH只返回现场,并把它传递给语言环境。这将解决问题。

+0

你的问题到底是什么?虽然有一些说法:带路径的“SlingServlet”不能使用选择器。使用“resourceTypes”,然后你已经有了你当前页面的路径,并可以从那里读出语言。 – Thomas

回答

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(); 
    } 
} 
1

要使用$ 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); 

对于这项工作取得的语言环境,在页面属性语言区域应设置为一个合适的值。