我正在开发一个JSF 2.0(带有primefaces 3.2)应用程序,我想在Liferay中集成我的JSF应用程序。我是Liferay的新手,要求申请将通过Liferay进入。
这意味着用户将登录,这应该通过Liferay进行。然后正如我在liferay'Liferayhomepage'登录后在liferay基本视频中看到的那样。
现在请指导我,在该主页内或登录后我应该能够看到我正在开发的JSF应用程序(你可以说我的应用程序将是liferay中的一个portlet)对吗?并且应该能够根据您在Liferay中应用的“角色”进行导航。我怎么能这样做?
第二个问题是,一旦我进入我的JSF应用程序,肯定 我将需要'userId',这将是唯一的,以执行插入和 从数据库中检索数据。我怎样才能在JSF中使用它 的applcation?如果任何人都可以用一个简单的例子来解释,那就是 真有帮助,因为这是我被卡住的地方。请帮忙 我出去了。
简而言之,可以通过调用单独的JSF应用程序 Liferay的?在这里我通过liferay进入,因为liferay提供了“角色”,因此一旦通过liferay登录,他应该能够根据角色(如管理员,高级用户等)进入我的JSF应用程序。(这正是我想这样做)
如果有人需要对我的问题进行更多澄清,请告诉我。
答案 0 :(得分:5)
正如Mark已经提到过的,你可以在这里找到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;
}
答案 1 :(得分:1)
安装Liferay IDE及其帮助您创建简单的JSF-2 Portlet。您在portletfaces页面上找到了一些示例 http://www.portletfaces.org/projects/portletfaces-bridge/liferay-ide
fyi portlet-faces现在是liferay-faces:http://www.portletfaces.org/projects/liferayfaces
答案 2 :(得分:1)
您应该获得Liferay IDE并创建一个新项目File-> New-> Liferay Project。然后选择Portlet为项目命名并显示名称
然后选择JSF2.x和PrimeFaces
你应该得到类似的东西:
通过在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>