Liferay 6:可以在我的案例中修改Liferay Friendly URL

时间:2012-04-15 18:09:31

标签: liferay-6

我正在使用liferay 6.1

我在liferay-portet.xml文件中添加了这个

<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>Gasd</friendly-url-mapping>
<friendly-url-routes>com/test/friendlier-friendly-url-routes.xml</friendly-url-routes>

根据COntext根目录(或Portlet名称),这是我友好友好的url-routes.xml

<routes>
<route>
    <pattern>/satportlet</pattern>
</route>
</routes>

但是,当我执行提交操作

时,该Portlet的URL仍然是这样的
http://localhost:8086/web/guest/home/-/Gasd/satportlet?p_auth=EFAy7VSA&p_p_lifecycle=1&_satportlet_WAR_SatPractportlet_javax.portlet.action=addBook

无论如何,这可以改善。

我对Liferay非常陌生,请建议我,我准备好你提到的chnages。

1 个答案:

答案 0 :(得分:2)

是的,可以改进。

对于JSP中的呈现URL的示例,要在portlet中查看用户:

<portlet:renderURL windowState="maximized" var="myURL">
    <portlet:param name="resourcePrimKey" value="<%=user.getUserId() %>" />
    <portlet:param name="jspPage" value="/html/viewMyUser.jsp" />
</portlet:renderURL>

您可以在friendlylier-friendly-url-routes.xml中拥有友好的URL路由,如下所示:

<route>                                   
    <pattern>/satportlet/{resourcePrimKey:\d+}/view</pattern>  
    <!-- \d+ is the place-holder for the userID, i.e. 5 in the friendly URL below -->
    <implicit-parameter name="p_p_lifecycle">0</implicit-parameter>
    <!-- Implicit parameters are not shown in the route pattern, here 0,1 etc are the phases of the portlet 0=render, 1=action etc -->
    <implicit-parameter name="p_p_state">maximized</implicit-parameter>
    <implicit-parameter name="jspPage">/html/viewMyUser.jsp</implicit-parameter>
</route>

因此生成的友好URL将是:

http://localhost:8086/web/guest/home/-/Gasd/satportlet/5/view

在查看生成的网址的情况下,您可以使用&lt; route&gt;像这样的元素(如果你在JSP中使用的&lt; portlet:actionURL&gt;或&lt; portlet:renderURL&gt;)我认为构建&lt; route&gt;元素会有点帮助。 我不确定这是否完全正确但是会是这样的:

<route>
    <pattern>/satportlet/{p_auth}/{[p_p_id]_javax.portlet.action:\d+}</pattern>  
    <implicit-parameter name="p_p_lifecycle">1</implicit-parameter>
</route>

所以我想(我再次确定不够)使用上述配置它应该生成友好的URL:

http://localhost:8086/web/guest/home/-/Gasd/satportlet/EFAy7VSA/addBook

您还可以查看liferay的源代码和* -friendly-url-routes.xml文件,以便更好地理解。

希望至少能为您提供关于友好URL如何在liferay中工作的线索。