1

私はliferay6.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ルート(またはポートレット名)によると、これは私のFriendlier-friendly-url-routes.xmlです

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

しかし、送信操作を行ったときでも、そのポートレットのURLはこのように見えます

http://localhost:8086/web/guest/home/-/Gasd/satportlet?p_auth=EFAy7VSA&p_p_lifecycle=1&_satportlet_WAR_SatPractportlet_javax.portlet.action=addBook

とにかくこれを改善できるということはありますか?

私はLiferayに非常に慣れていないので、提案してください。あなたが言うように、私は変更を行う準備ができています。

4

1 に答える 1

2

はい、改善できます。

たとえば、JSPでのレンダリングURLの場合、ポートレットでユーザーを表示するには、次のようにします。

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

次のように、friendlier-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

生成されたURLを見ると、次のような<route>要素を使用できます(JSPで使用している<portlet:actionURL>または<portlet:renderURL>が指定されている場合は、 <route>要素を作成します)。これが完全に正しいかどうかはわかりませんが、次のようになります。

<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でどのように機能するかについての手がかりが得られることを願っています。

于 2012-04-16T10:55:07.147 に答える