Tôi muốn tạo một liên kết trong một portlet để tôi có thể điều hướng đến một trang khác trong cổng Web Liferay. Tôi đặt hàng để làm điều đó Tôi đang tìm kiếm một API (có thể là liferay cụ thể) mà cho một tên trang, sẽ trả về url của nó (nó có thể là friendlyURL là tốt).Lập trình có được url của một trang trong liferay
Trả lời
API để truy cập các trang trong Liferay là LayoutService. Tuy nhiên, tên trang không phải là duy nhất trong Liferay và hơn nữa chúng được quốc tế hóa. Vì vậy, bạn cần một số thuộc tính duy nhất cho một trang để truy xuất url của nó, bên cạnh tên của nó.
Nếu bạn thực sự chỉ có tên trang, bạn có thể sử dụng LayoutLocalServiceUtil.getLayouts (...) để lặp qua tất cả Bố cục và kiểm tra một số thuộc tính (trong trường hợp này là tên của nó).
Trang cổng thông tin trong Liferay thực sự được gọi là Layouts
trong API và bảng DB. Chúng được xác định bởi trường plid
, có thể thu được bằng cách sử dụng LayoutLocalServiceUtil
và các API có liên quan cũng như từ một số cuộc gọi khác như themeDisplay.getLayout()
.
Tuy nhiên, để tạo Chuỗi chứa URL vào trang, bạn sẽ phải nối URL thân thiện với cổng, nhóm và bố cục (tức là /web/guest/home
- web
là URL cổng cho các trang công cộng, guest
là URL thân thiện của nhóm khách theo mặc định và home
là URL thân thiện của trang chủ/bố cục theo mặc định). Điều này có thể phức tạp, vì bạn phải kiểm tra xem đây là trang công khai hay riêng tư, v.v.
Và một khi bạn bắt đầu sử dụng máy chủ ảo có URL thân thiện cho các nhóm, mọi thứ thay đổi. Vì vậy, đây không phải là một cách tốt.
Để tránh tạo URL theo cách thủ công và có URL được bảo đảm chính xác, bạn nên sử dụng com.liferay.portal.util.PortalUtil.getLayoutFriendlyURL(Layout layout, ThemeDisplay themeDisplay)
một phương pháp tĩnh là PortalUtil
- nó sẽ thực hiện tất cả công việc cần thiết cho bạn. Mặc dù bạn cũng cần phải cung cấp ThemeDisplay
và không chỉ Bố cục.
Ít nhất trong Liferay 6.1.20, người ta có thể sử dụng 'Liên kết các URL Portlet tới Trang' để làm cho các liên kết tiếp tục đến trang antoher trong cổng thông tin của bạn. Đó là mục trình đơn ´look và feel´ của portlet của bạn. Đối với tôi điều này hoạt động tốt.
cổ vũ
- 1. Sự kiện trong Liferay Portlets
- 2. Nhận các url thân thiện để làm việc trong Liferay
- 3. Làm cách nào để lập trình một Liferay Portlet thành một chế độ toàn màn hình
- 4. Lập trình Tiêu đề của Trang SharePoint?
- 5. Làm thế nào tôi có thể thay đổi lập trình argspec của một hàm trong một trình trang trí python?
- 6. Lập trình tạo CMS/Trang trong Magento
- 7. Tạo Thanh tiến trình trong Liferay
- 8. Lập trình đọc một trang web
- 9. Mở URL có lập trình trong trình duyệt web bằng Python
- 10. Làm thế nào để lập trình URL của WebView trong một dự án OSX Xcode?
- 11. Truy cập "URL của trang Chỉnh sửa URL" từ trang
- 12. linux: lập trình có được pid cha của một quá trình khác?
- 13. Tạo một System.Web.UI.Page lập trình trong IHTTPHandler
- 14. Bất kỳ cách nào để lấy biểu tượng logo từ URL trang web, theo lập trình?
- 15. Nhận URL của trang được yêu cầu gây ra 404
- 16. Lập trình biểu diễn một trang web UserControl
- 17. Làm thế nào để truy cập một cách có lập trình một trang web được bảo vệ bằng mật khẩu?
- 18. Tạo PDF theo cách có lập trình từ trang web
- 19. Thêm ScriptManager vào Trang theo lập trình?
- 20. Làm cách nào để chuyển hướng URL của trình duyệt của người dùng đến một trang khác trong Nodej?
- 21. Làm thế nào để lập trình đăng nhập vào một URL, giữ phiên và duyệt qua các trang khác nhau
- 22. Trang aspx có lập trình đóng từ mã phía sau
- 23. Liferay: Site logo
- 24. Nhận một phần của url trong angularjs
- 25. Có phải một lĩnh vực OpenID phải là URL cơ sở của trang web không?
- 26. lập trình nhấp vào nút nhập trong trang web khác?
- 27. Có một API Subversion có thể được sử dụng để lập trình chống lại trong .NET
- 28. Làm thế nào tôi có thể thay đổi lập trình argspec của một hàm * không * trong một trình trang trí python?
- 29. Lập trình "DSL" của Clojure
- 30. Lập trình maxPostSize của Tomcat HTTP trong một JSP
Tên không phải là duy nhất, nhưng thuộc tính FriendlyURL là duy nhất. – Jonny
FriendlyURL không phải là AFAIK duy nhất. Hai trang (Bố cục) trong các Nhóm khác nhau có thể có cùng một URL thân thiện. Trên thực tế, họ sẽ, vì khi bạn tạo Nhóm mới, bạn thường tạo trang có URL thân thiện "/ home" trong đó. Điều là URL thân thiện của một trang (Bố cục) không chứa đường dẫn hoàn chỉnh (như "/ web/khách/nhà", "/ web/người dùng/nhà") nhưng chỉ là một phần của nó. – mvmn
Sự kết hợp của groupId + friendlyURL là duy nhất mặc dù. –