ber*_*rdn 18 liferay liferay-6
我想在portlet中创建一个链接,以便我可以导航到liferay门户中的另一个页面.我命令这样做我正在寻找一个给定页面名称的API(可以是liferay特定的),它将返回它的url(它也可以是friendlyURL).
mvm*_*vmn 12
Liferay中的Portal页面确实Layouts
在API和DB表中调用.它们是按plid
字段标识的,可以使用LayoutLocalServiceUtil
相关的API 获得,也可以通过其他一些调用获得themeDisplay.getLayout()
.
但是,为了构建包含页面URL的String,您必须连接门户网站,组和布局本身的友好URL(即/web/guest/home
- web
是公共页面的门户网站URL,guest
默认情况下home
是来宾组的友好URL,是家庭的友好URL页面/布局默认情况下).这可能很棘手,因为您必须检查这是公共页面还是私人页面等.
一旦您开始使用具有友好URL的虚拟主机,组就会发生变化.所以这不是一个好方法.
为了避免手动创建URL并确保URL保证正确,您应该使用com.liferay.portal.util.PortalUtil.getLayoutFriendlyURL(Layout layout, ThemeDisplay themeDisplay)
静态方法PortalUtil
- 它将为您完成所有必要的工作.虽然您还需要提供ThemeDisplay
而不仅仅是布局.
在Liferay中访问页面的API是LayoutService.但是,页面名称在Liferay中并不是唯一的,而且它们是国际化的.因此,除了名称之外,您还需要页面的一些唯一属性来检索其URL.
如果您确实只有页面名称,则可以使用LayoutLocalServiceUtil.getLayouts(...)循环遍历所有布局并检查某些属性(在本例中为其名称).
归档时间: |
|
查看次数: |
25922 次 |
最近记录: |