1
我爲Java,Jquery和Javascript編寫了Liferay的portlet。來自userprofile的Liferay語言
我試圖讓正在使用我的portlet中userprofil的語言。
我已經得到了uuid,可以使用它。
如果我試圖讓相同的語言,方式,我收到空。
我JavaClass:
public class UserId extends MVCPortlet {
public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
ThemeDisplay td =(ThemeDisplay)renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
/*String userLanguage = td.getLocale().toString();*/
/*String userLanguage = user.getLanguageId();*/
String userLanguage = LanguageUtil.getLanguageId(renderRequest);
String userId = user.getUuid();
renderRequest.setAttribute("myUser", userId);
renderRequest.setAttribute("myUserLang", userLanguage);
super.doView(renderRequest, renderResponse);
}
}
正如你可以看到我試着用三種不同的方法來獲取用戶語言。
我view.jsp的:
<portlet:defineObjects />
<%
String userIdIntern = renderRequest.getRemoteUser();
String userIdExtern = (String) request.getAttribute("myUser");
String userLang = (String) request.getAttribute("myUserLang");
%>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
userId = "<%=userIdExtern%>";
debug(userId);
var testLang = "<%=userLang%>";
debug("testLang obj: "+testLang); // returns null
});
/* more code below */
如果我使用td.getLocale()我至少也得空的對象,而不是。使用.toString()再次返回空值。
如何獲取用戶配置文件當前使用的語言?
您是否嘗試打印user.getLocale()? –
哇哇它只是現在工作後,我完全刪除它從服務器,並readded它。我現在收到了預期的「en_GB」。我會進一步測試,然後關閉我的問題。感謝您的幫助! PS:我將getlocale打印到textarea(這發生在我的debug()方法中) – Wandang