Interface FriendlyURLMapper
- All Known Implementing Classes:
BaseFriendlyURLMapper
,DefaultFriendlyURLMapper
Never implement this interface directly, subclass BaseFriendlyURLMapper
to ensure forward compatibility.
- Author:
- Brian Myunghun Kim, Brian Wing Shun Chan, Jorge Ferrer
- See Also:
-
BaseFriendlyURLMapper
DefaultFriendlyURLMapper
com.liferay.portlet.PortletURLImpl
-
Method Summary
Modifier and TypeMethodDescriptionbuildPath
(LiferayPortletURL liferayPortletURL) Generates a friendly URL path from the portlet URL object.Returns the friendly URL mapping for this portlet.Returns the ID of this portletReturns the router for this friendly URL mapperboolean
Returnstrue
if the friendly URLs for this mapper should include the friendly URL separator.boolean
Returnstrue
if this portlet is instanceable.void
populateParams
(String friendlyURLPath, Map<String, String[]> parameterMap, Map<String, Object> requestContext) Populates the parameter map with values parsed from the friendly URL path.void
setMapping
(String mapping) Sets the friendly URL mapping for this portlet.void
setPortletId
(String portletId) Sets the ID of this portlet.void
setPortletInstanceable
(boolean portletInstanceable) Sets whether this portlet is instanceable.void
Sets the router for this friendly URL mapper.
-
Method Details
-
buildPath
Generates a friendly URL path from the portlet URL object.- Parameters:
liferayPortletURL
- the portlet URL object to generate a friendly URL for- Returns:
- the generated friendly URL, or
null
if one cannot be built. Returningnull
will cause a normal portlet URL to be generated.
-
getMapping
String getMapping()Returns the friendly URL mapping for this portlet.The friendly URL mapping is used by Liferay to identify the portlet a friendly URL refers to. It generally appears directly after the
/-/
in the URL.For instance, the blogs portlet mapping is "blogs". This produces friendly URLs similar to
http://www.liferay.com/web/guest/blog/-/blogs/example-post
- Returns:
- the friendly URL mapping for this portlet, not including any leading or trailing slashes
-
getPortletId
String getPortletId()Returns the ID of this portlet- Returns:
- the ID of this portlet, not including the instance ID
-
getRouter
Router getRouter()Returns the router for this friendly URL mapper- Returns:
- the router, or
null
if one has not been set
-
isCheckMappingWithPrefix
boolean isCheckMappingWithPrefix()Returnstrue
if the friendly URLs for this mapper should include the friendly URL separator.Typically, friendly URLs will include the separator "/-/" before the friendly URL mapping. If this method returns
false
, a single slash will be used instead.This method is called by
PortalImpl
when a friendly URL is processed.It is strongly recommended that this method always return
true
.- Returns:
true
if the "/-/" separator should be included in friendly URLs, orfalse
if only a "/" should be used
-
isPortletInstanceable
boolean isPortletInstanceable()Returnstrue
if this portlet is instanceable.The value returned from this method has no effect on whether a portlet is instanceable, it is a helper method used to determine if the instance ID should be included in the URL.
- Returns:
true
if the portlet is instanceable;false
otherwise
-
populateParams
void populateParams(String friendlyURLPath, Map<String, String[]> parameterMap, Map<String, Object> requestContext) Populates the parameter map with values parsed from the friendly URL path.This method is called by
PortalImpl
when a friendly URL is processed.- Parameters:
friendlyURLPath
- the friendly URL path, including a leading slash and the friendly URL mapping. For example:/blogs/example-post
parameterMap
- the parameter map. Entries added to this map must be namespaced.requestContext
- the request context- See Also:
-
setMapping
Sets the friendly URL mapping for this portlet.This method is automatically called by
PortletBagFactory
with the friendly URL mapping defined inliferay-portlet.xml
.- Parameters:
mapping
- the friendly URL mapping for this portlet
-
setPortletId
Sets the ID of this portlet.This method is automatically called by
PortletBagFactory
with the portlet ID defined inliferay-portlet.xml
.- Parameters:
portletId
- the ID of this portlet.
-
setPortletInstanceable
void setPortletInstanceable(boolean portletInstanceable) Sets whether this portlet is instanceable.- Parameters:
portletInstanceable
- whether this portlet is instanceable
-
setRouter
Sets the router for this friendly URL mapper.This method is automatically called by
PortletBagFactory
with a router populated with the routes defined in this portlet's friendly-url-routes.xml file. The location of this file is defined in this portlet's liferay-portlet.xml file.- Parameters:
router
- the router for this friendly URL mapper
-