2012-04-15 18 views
1

を変更することができますすることができます私は、私はLiferayの-portet.xmlファイルのLiferay 6:LiferayのフレンドリーURLは、私の場合には

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

あたりとして内部でこれを追加したLiferayの6.1

を使用していますコンテキストルート(またはポートレット名)これは私の優しい優しい-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を非常に新しくしています。私はあなたに言及しているように、私はchnagesを行う準備ができています。

答えて

2

はい、改善できます。例については

ポートレットでユーザーを表示するには、JSPでURLをレンダリングするために:あなたはこのようなあなたの優しい優しい-URL-routes.xmlでフレンドリーURLルートを持つことができます

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

<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あなたはこのような<ルート>要素何かを持つことができます(:actionURL >または<ポートレット:<ポートレット場合renderURL >あなたはJSPで使用しているが、与えられた私はそれが<ルート>要素を構築することはほとんど参考になると思います) 。 私は、これは完全に正しいだろうかどうかわからないのですが、それはこのようなものになるだろう:それはフレンドリーURLを生成する必要があります上記の構成で

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

だから私は(再び、私は十分に確認していない)と思います

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

また、liferayのソースコードと* -friendly-url-routes.xmlファイルを確認して、より理解を深めることができます。

希望すると、フレンドリーなURLがどのように生きているのかを手掛かりにすることができます。

+0

ありがとう、これでURLSがよく見えます。 – Gajjini

+0

私はうれしいです、それはあなたのために働いた。 –

関連する問題