我已经成功地为我的几个自定义 portlet 实现了友好 URL,它工作正常。
生成可点击链接时,它会正确显示友好网址。
现在我的要求是,我需要将此渲染 URL(例如URL01
)作为参数(param02
)发送到另一个 URL(URL02
),URL01
然后将其显示在另一个页面上。
生成方式URL01
是这样的:
<portlet:renderURL var="URL01" windowState="<%=WindowState.MAXIMIZED.toString() %>">
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="myId" value="<%= String.valueOf(myObject.getMyId()) %>" />
<portlet:param name="title" value="<%= myObject.getTitle() %>" />
<portlet:param name="name" value="<%= myObject.getName() %>" />
</portlet:renderURL>
是这样URL02
生成的
<portlet:renderURL var="URL02" windowState="<%= LiferayWindowState.POP_UP.toString() %>">
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="URL01" value="<%=URL01 %>" />
<portlet:param name="ownerId" value="<%= String.valueOf(ownerId) %>" />
<portlet:param name="groupId" value="<%= String.valueOf(scopeGroupId) %>" />
</portlet:renderURL>
这URL02
将打开一个弹出窗口,并URL01
在 JSP 中显示如下:
URL: <%= ParamUtil.getString(request, "URL01") %>
但这显示URL01
(unfriendly-URL) 为:
URL: http://localhost:8080/web/guest/mypage?p_p_id=my_WAR_myportlet&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_my_WAR_myportlet_myId=10989&_my_WAR_myportlet_title=This+is+miine&my_WAR_myportlet_name=What+name
如果这是一个可点击的链接,它会完美地生成为(友好的 URL):
<a href="http://localhost:8080/web/guest/mypage/-/mine/10989/This+is+miine/What+name/maximized"> Click me! </a>
所以我需要一个可以将我的 unfriendly-url 转换为friendly-URL 的实用程序,就像String
传递了一个 unfriendly-url 一样 - 它会将其转换为上面显示的friendly-url。
或者我必须创建自己的实现来实现这一目标?
编辑:
<route>
<pattern>/{myId:\d+}/{title:.+}/{name:.+}/{p_p_state}</pattern>
<ignored-parameter name="redirect" />
<implicit-parameter name="p_p_id">my_WAR_myportlet</implicit-parameter>
<implicit-parameter name="p_p_lifecycle">0</implicit-parameter>
<implicit-parameter name="p_p_mode">view</implicit-parameter>
</route>
是的,URL01
它写URL02
在 JSP 的上方。