2016-03-10 39 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); 

對於這項工作取得的語言環境,在頁面屬性語言區域應設置爲一個合適的值。