如何在JSP中捕获Liferay登录用户的详细信息(如电子邮件ID、名称等)

如何在JSP中捕获Liferay登录用户的详细信息(如电子邮件ID、名称等),jsp,liferay,Jsp,Liferay,我想在JSP中捕获Liferay登录的用户详细信息(如电子邮件ID、名称等)。我不想使用任何框架。我不熟悉JAVA和Liferay,所以任何详细的步骤都会对我的工作有很大的帮助。提前感谢。如果您添加到jsp <%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme"%> <liferay-theme:defineObjects /> 意思是已将用户对象置于页面上下文中 查找com.lifera

我想在JSP中捕获Liferay登录的用户详细信息(如电子邮件ID、名称等)。我不想使用任何框架。我不熟悉JAVA和Liferay,所以任何详细的步骤都会对我的工作有很大的帮助。提前感谢。

如果您添加到jsp

<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme"%>
<liferay-theme:defineObjects />
意思是
已将用户对象置于页面上下文中


查找
com.liferay.portal.model.User
以查看所有可用属性。

在任何登录jsp页面中,您可以通过调用以下方法获取登录者的用户对象:

ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(com.liferay.portal.kernel.util.WebKeys.THEME_DISPLAY);
User objUser=themeDisplay.getUser();

通过这个对象,您可以获得所需的所有详细信息。

您还可以使用以下内容在JSP中获得用户信息:

long uid = com.liferay.portal.util.PortalUtil.getUserId(request);

User user = UserLocalServiceUtil.getUserById(uid);

谢谢马丁的回复。我已经添加了上面提到的代码片段,但是我得到了“org.apache.jasper.jaspereException:处理JSP页面时发生异常”错误。有没有具体的建议我如何使用你的代码?我只添加了你提到的行。如果我不熟悉Liferay和JAVA,请告诉我是否遗漏了什么。ThanksI是指整个jsp。您是否有自己的portlet或修改一些现有jsp(如果有)。我的jsp页面只包含您的代码,我没有添加任何其他内容。为了简化我的需求,我只想显示“Hello”,就是这样。@Sunil使用您提到的设置,您将离开门户世界-并且您不容易将门户上下文转移到这个世界。您基本上回到了一个servlet应用程序,在这个应用程序中,您不能依赖门户的基础设施——事实上,您可以依赖不存在的基础设施。如果您不需要门户环境:不要使用它。如果您需要它:接受它就在那里并停留在门户/portlet中,不要使用iframe。如果您在portlet中使用Martin的代码,它就可以工作
ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(com.liferay.portal.kernel.util.WebKeys.THEME_DISPLAY);
User objUser=themeDisplay.getUser();
long uid = com.liferay.portal.util.PortalUtil.getUserId(request);

User user = UserLocalServiceUtil.getUserById(uid);