2012-04-15 8 views
1

ich verwende liferay 6.1Liferay 6: Kann die Liferay freundliche URL kann in meinem Fall geändert werden

ich dies in der liferay-portet.xml Datei hinzugefügt haben

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

und zu dessen CONTEXT Wurzel (oder der Portlet-Name) das ist mein freundlicher freundlich-url-routes.xml

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

Aber immer noch die URL dieses Portlet auf diese Weise sieht, wenn ich ein Op Senden hat eration

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

Gibt es trotzdem, dass dies verbessert werden kann.

Ich bin sehr neu zu Liferay, bitte schlagen Sie mich vor, ich bin bereit, chnages zu tun, wie Sie erwähnen.

Antwort

2

Ja, es kann verbessert werden.

zum Beispiel für eine Render-URL in JSP, einen Benutzer im Portlet anzuzeigen:

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

Sie können in Ihrem freundlichen freundlich-url-routes.xml wie dies die freundliche URL Route haben:

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

So die erzeugte freundliche URL wäre:

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

In Ihrem Fall bei Ihrem erzeugt suchen URL können Sie die <Route> Element so etwas wie dieses (wenn das < Portlet: actionURL > oder < Portlet: renderURL > Sie in der JSP verwenden gegeben wurde ich denke, es wäre ein wenig hilfreich sein, die > Element zu bauen < Strecke) . Ich bin nicht sicher, wenn diese vollkommen richtig sein würde, aber es wäre so etwas wie diese:

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

So Ich denke, (wieder bin ich nicht sicher genug) mit der oben beschriebenen Konfiguration soll es die freundliche URL erzeugen wie:

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

können Sie auch liferay Quellcode und die * -friendly-url-routes.xml Dateien für ein viel besseres Verständnis überprüfen.

Hoffe, dass diese atleast Ihnen einen Hinweis gibt, wie die freundlichen URLs in liveray funktionieren.

+0

Vielen Dank, damit die URLs gut aussehen. – Gajjini

+0

Ich bin froh, es hat für dich funktioniert. –