【问题标题】:Liferay 6: Can the Liferay Friendly URL can be modified in my caseLiferay 6:在我的情况下可以修改 Liferay Friendly URL
【发布时间】:2012-04-27 05:23:19
【问题描述】:

我正在使用 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>

根据上下文根(或 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 非常陌生,请给我建议,我已经准备好按照你所说的进行更改。

【问题讨论】:

    标签: liferay-6


    【解决方案1】:

    是的,它可以改进。

    以 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>
    

    您可以像这样在友好的 URL 路由中包含友好的 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
    

    在您查看生成的 URL 的情况下,您可以使用类似这样的 元素(如果给出了您在 JSP 中使用的 我认为这将是对构建 元素帮助不大)。 我不确定这是否完全正确,但应该是这样的:

    <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 中的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 2015-07-03
      • 1970-01-01
      • 2021-02-04
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多