2012-11-09 73 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页面中都可以默认使用(隐式地)。 –

相关问题