2012-11-09 89 views
3

我是Liferay和Java的新手,我一直在爲如何獲得用戶名而奮鬥一天,這個產品的文檔非常差,所以任何幫助將不勝感激。 所以我'工作的一個門戶,我想它來顯示用戶的名字,這是view.jsp的文件:我如何在Liferay上獲得用戶的名字?

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<%@ page import="javax.portlet.PortletPreferences" %> 
<%@ page import="com.liferay.portal.model.UserModel " %> 
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %> 
<portlet:defineObjects /> 


<liferay-ui:success key="success" message="Greeting saved 
     successfully!" /> 

<% 
PortletPreferences prefs = renderRequest.getPreferences(); 
String greeting = (String)prefs.getValue(
"greeting", "Hello! Welcome to our portal."); 
%> 
<% 

%> 
<p><%= greeting %></p> 
<portlet:renderURL var="editGreetingURL"> 
<portlet:param name="mvcPath" value="/edit.jsp" /> 
<portlet:param name="userName" value="Test" /> 

</portlet:renderURL> 

<p><a href="<%= editGreetingURL %>">Edit greeting</a></p> 

我已經用的usermodel類或接口出場,我居然發現方法:getFirstName(),但我不能讓它工作。

回答

5

另一種方法是使用Liferay的ThemeDisplay像這樣:

<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %> 
<liferay-theme:defineObjects /> 

<%= themeDisplay.getUser().getFirstName() %> 

雖然我會建議不要在代碼中使用JSP小腳本,並在您的portlet類代碼做到這一點在Java中。

~~編輯:增加替代使用用戶超過一次~~

期運用託尼的混合物的一個例子,我的辦法是,像這樣:

<%= com.liferay.portal.model.User user = themeDisplay.getUser(); %> 

~~編輯2:要在Java代碼中做到這一點~~

見我的要點在這裏:https://gist.github.com/4060650

它可以使用JSTL來擺脫所有腳本小程序進一步簡化。

+0

謝謝,這似乎是工作,我試圖使用託尼的方法,以後在程序中的用戶變量,但我也upvoting這一個,謝謝 – isJustMe

+0

感謝您的投票!您可以使用兩種方法的混合,通過使用com.liferay.portal.model.User user = themeDisplay.getUser(); – Jonny

+0

excelente,我將此標記爲已接受,只是一個問題,你知道如何在java類而不是jsp上做到這一點嗎? – isJustMe

3

嘗試添加到JSP:

<% 
com.liferay.portal.model.User user = 
     com.liferay.portal.util.PortalUtil.getUser(request); 
String firstName = user.getFirstName(); 
%> 
<p>User First Name=<%= firstName %></p> 

我加全包爲便於理解。

+0

謝謝託尼,請求參數是什麼? – isJustMe

+0

它是JSP隱式對象之一(請參閱http://www.gulland.com/courses/jsp/objects)。它是javax.servlet.http.HttpServletRequest類型的,並且在任何JSP頁面中都可以默認使用(隱式地)。 –

相關問題