0

我正在开发一个 JSF 2.0(使用 primefaces 3.2)应用程序,我想将我的 JSF 应用程序集成到 Liferay 中。我是 Liferay 的新手,要求应用程序可以通过 Liferay 进入。

这意味着用户将登录,这应该通过 Liferay 进行。然后正如我在liferay 'Liferayhomepage' 登录后在liferay 基本视频中看到的那样。

现在请指导我,在该主页内或登录后,我应该能够看到我正在开发的 JSF 应用程序(你可以说我的应用程序将是 liferay 中的一个 portlet)对吗?并且应该能够根据您在 Liferay 中应用的“角色”进行导航。我怎样才能做到这一点?

第二个问题是,一旦我进入我的 JSF 应用程序,我肯定需要唯一的“userId”来执行数据库中数据的插入和检索。如何在我的 JSF 应用程序中使用它?如果有人可以用一个简单的例子来解释,那将非常有帮助,因为这就是我卡住的地方。请帮帮我。

简而言之,是否可以通过 liferay 调用单独的 JSF 应用程序?在这里,我通过 liferay 提供入口,因为 liferay 提供“角色”,因此一旦通过 liferay 登录,他应该能够根据角色(如管理员、高级用户等)进入我的 JSF 应用程序。(这正是我想要做)

如果有人需要对我的问题进行更多说明,请告诉我。

4

3 回答 3

5

正如马克已经提到的,您可以在这里找到 jsf portlet 示例(也带有 primefaces)http://www.liferay.com/community/liferay-projects/liferay-faces/demos

在您的 jsf portlet 中,您可以通过以下方式获取用户对象(包含角色):

public static User getCurrentUser(){
    User u = null;
    FacesContext fc = FacesContext.getCurrentInstance();
    ExternalContext externalContext = fc.getExternalContext();
    if (externalContext.getUserPrincipal() != null) {
        Long id = Long.parseLong(externalContext.getUserPrincipal().getName());
        try {
            u = UserLocalServiceUtil.getUserById(id);
        }
        catch (Exception ex) {
            LOG.error(ex.getMessage());
        }
    }
    return u;
}
于 2012-04-23T14:13:33.823 回答
1

安装 Liferay IDE 及其帮助您创建简单的 JSF-2 Portlet。您在 portletfaces 页面 http://www.portletfaces.org/projects/portletfaces-bridge/liferay-ide找到了一些示例

仅供参考,portlet-faces 现在是 liferay-faces:http ://www.portletfaces.org/projects/liferayfaces

于 2012-04-22T19:09:29.977 回答
1

您应该获得 Liferay IDE 并创建一个新项目 File->New->Liferay Project。然后选择 Portlet 为项目命名并显示名称

截屏一

然后选择 JSF2.x 和 PrimeFaces

截图2

你应该最终得到类似的东西: 在此处输入图像描述

您可以通过在 liferay-display.xml、liferay-portlet.xml 和 portlet.xml 中添加信息来添加 portlet。portlet.xml 将 jsf 页面映射到 portlet 视图

    <init-param>
    <name>javax.portlet.faces.defaultViewId.view</name>
    <value>/views/view.xhtml</value>
    </init-param>
于 2013-05-08T21:18:49.020 回答