Liferay7开发文档_3.2.3生成PORTLET URL

原创
2018/04/29 13:36
阅读数 419

生成PORTLET URL

回想一下,用户可以在一个页面上放置多个portlet。作为一名开发人员,您不知道会与哪些其他portlet共享一个页面。这意味着不能像习惯的那样为应用程序中的各种功能定义URL。

例如,考虑一个用户与博客应用程序放在同一页面上的日历应用程序。要实现删除相应应用程序中的日历事件和博客条目的功能,应用程序开发人员将该del参数追加到URL中,并为其提供主键值,以便应用程序可以查找和删除日历事件或博客条目。由于这两个应用程序读取此参数,它们的删除功能会发生冲突

Liferay Portal的解决方案是由系统生成的URL。通过为每项功能生成一个唯一的URL参数,Liferay Portal允许具有相同或相似功能的多个应用程序和谐共存。不幸的是,为了保证portlet工作,必须手动添加对它的支持。幸运的是,这样做非常简单。

view.jsp,按照以下步骤在您的portlet中启用系统生成的URL:

  1. 添加这些标签<%@ include file="/init.jsp" %><aui:button-row>标签上方:
    <portlet:renderURL var="addEntryURL">
        <portlet:param name="mvcPath" value="/edit_entry.jsp"></portlet:param>
    </portlet:renderURL>
    
  2. <aui:button>添加如下属性,在标记value="Add Entry"之前:
    onClick="<%= addEntryURL.toString() %>"
    

    view.jsp页面现在应该如下所示:

    <%@ include file="/init.jsp" %>
    
    <portlet:renderURL var="addEntryURL">
        <portlet:param name="mvcPath" value="/edit_entry.jsp"></portlet:param>
    </portlet:renderURL>
    
    <aui:button-row>
        <aui:button onClick="<%= addEntryURL.toString() %>" value="Add Entry"></aui:button>
    </aui:button-row>
    

The <portlet:renderURL> tag’s var attribute creates the addEntryURL variable to hold the system-generated URL. The <portlet:param> tag defines a URL parameter to append to the URL. In this example, a URL parameter named mvcPath with a value of /edit_entry is appended to the URL.

请注意,你的GuestbookPortlet类(位于你的guestbook-web模块的com.liferay.docs.guestbook.portlet包中)扩展了Liferay的MVCPortlet类。在Liferay MVC portlet中mvcPathURL参数表示portlet中的页面。要导航到portlet中的另一个页面,请使用带有参数的门户网址mvcPath链接到特定页面。

在上面的例子中,你创建了一个renderURL指向你的应用程序的edit_entry.jsp页面。请注意,使用AlloyUI按钮来跟随生成的URL不是必需的。您可以使用任何包含链接的HTML构造。用户可以点击你的按钮访问你的应用程序edit_entry.jsp页面。目前会产生一个错误,因为edit_entry.jsp还不存在。下一步创造edit_entry.jsp

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部