3

私はLiferayとJavaの両方に不慣れで、ユーザーの名を取得する方法について1日苦労してきました。この製品のドキュメントは非常に貧弱なので、助けていただければ幸いです。だから私はポートレットで作業していて、ユーザーの名を表示したいのですが、これはview.jspファイルです。

<%@ 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()を見つけましたが、それを機能させることができません。

4

2 に答える 2

5

別の方法として、次のように Liferay ThemeDisplay を使用することもできます。

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

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

ただし、コードで JSP スクリプトレットを使用しないことをお勧めします。これは、ポートレット クラス コードの Java で行います。

~~ 編集: User を複数回使用する代替手段を追加 ~~

Tony のアプローチと私のアプローチを組み合わせて使用​​する例は次のようになります。

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

~~ 編集 2: Java コードでこれを行うには ~~

ここで私の要点を参照してください: https://gist.github.com/4060650

JSTL を使用してすべてのスクリプトレットを削除すると、さらに簡素化できます。

于 2012-11-10T09:36:24.107 に答える
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>

わかりやすくするために、完全なパッケージを追加しました。

于 2012-11-10T03:18:00.003 に答える