2

我想使用 Liferay URL 映射,但目前 JSF 2 和 URL 映射存在错误,所以它不起作用(http://issues.liferay.com/browse/FACES-257)。所以我切换到 PrettyFaces。

我的问题是,您如何在 PrettyFaces 中映射一个链接,例如

localhost:8080/web/guest/wsw?p_auth=oPRD7ELs&p_p_id=KonakardPotrlets_WAR_KonakardPotrletsportlet&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_KonakardPotrlets_WAR_KonakardPotrletsportlet__facesViewIdRender=%2Fviews%2Fwizard.xhtml

像这样的事情?

localhost:8080/web/guest/wsw/views/wizard/id=2

注意:我还需要生成一个id在 bean 中设置的新参数。

4

1 回答 1

0

FACES-257很久以前就已经修复了。您应该使用Liferay 友好的 URL

在下面创建一个friendly-url-routes.xml文件src/main/resources/

<?xml version="1.0"?>
<!DOCTYPE routes PUBLIC "-//Liferay//DTD Friendly URL Routes 7.0.0//EN" "http://www.liferay.com/dtd/liferay-friendly-url-routes_7_0_0.dtd">

<routes>
    <route>
    <pattern>/views/{viewName}/id={my_id}</pattern>
        <generated-parameter name="_facesViewIdRender">/WEB-INF/views/{viewName}.xhtml</generated-parameter>
        <implicit-parameter name="p_p_lifecycle">0</implicit-parameter>
        <implicit-parameter name="p_p_mode">view</implicit-parameter>
        <implicit-parameter name="p_p_state">normal</implicit-parameter>
    </route>
</routes>

您还需要将以下配置添加到<portlet>您的部分liferay-portlet.xml

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

URL 将是:

localhost:8080/web/guest/wsw/-/my-portlet/views/wizard/id=2
于 2018-10-04T03:41:30.160 回答