Tôi muốn bật url thân thiện trong suốt đời cho các Cổng JSR-268 của tôi.Nhận các url thân thiện để làm việc trong Liferay
Tôi đã định cấu hình trình lập bản đồ url thân thiện như tôi đã nói trong http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/FriendlyURLMapper nhưng bằng cách nào đó điều này không hiệu quả đối với tôi.
Tôi đang thiếu gì?
liferay-portlet.xml
của tôi trông như thế này:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>content</portlet-name>
<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>content</friendly-url-mapping>
<friendly-url-routes>com/gentics/cr/portlet/content-url-routes.xml</friendly-url-routes>
<instanceable>true</instanceable>
</portlet>
<portlet>
<portlet-name>navigation</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
</portlet>
<portlet>
<portlet-name>search</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
<!-- header-portlet-css>/css/test.css</header-portlet-css>
<footer-portlet-javascript>/js/test.js</footer-portlet-javascript-->
</portlet>
<!--role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper-->
</liferay-portlet-app>
content-url-routes.xml
của tôi trông như thế này:
<?xml version="1.0"?>
<!DOCTYPE routes PUBLIC "-//Liferay//DTD Friendly URL Routes 6.0.0//EN" "http://www.liferay.com/dtd/liferay-friendly-url-routes_6_0_0.dtd">
<routes>
<route>
<pattern>/content/{contentid}</pattern>
</route>
<!-- route>
<pattern>/{instanceId}/search/{filter}</pattern>
<implicit-parameter name="do">search</implicit-parameter>
</route>
<route>
<pattern>/{instanceId}/search/{filter}/{start}</pattern>
<implicit-parameter name="do">search</implicit-parameter>
</route-->
</routes>
Các url render trong portlet vẫn là: http://localhost:8080/web/guest/home?p_auth=Yu81QQrj&p_p_id=content_WAR_genticsportlet_INSTANCE_R2HSaoL5RkHi&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_p_col_count=1&_content_WAR_genticsportlet_INSTANCE_R2HSaoL5RkHi_contentid=10007.33
URL được tạo ra sử dụng mã follogwing:
PortletURL actionURL = response.createActionURL();
actionURL.setParameter("contentid", "10007.33");
Nó sẽ rất tốt đẹp nếu bạn có thể chỉ cho tôi vào đúng hướng ...
Tôi vừa thử điều đó ... nhưng nó vẫn không hoạt động. Tôi cho rằng ánh xạ url đang hoạt động theo cả hai cách: các url trong nội dung shoul đã được hiển thị dưới dạng url thân thiện ... phải không? Ngoài ra, có thể có sự cố với cá thể/thể hiện không? – csupnig
Tôi đã có nghi ngờ chính xác này khi tôi bắt đầu khám phá các url thân thiện ngày hôm qua. Sau khi gỡ lỗi rất nhiều, hóa ra nó. Tôi đã thêm một '/ ' chung để làm cho nó hoạt động. Hãy thử với 'instanceable = false' để loại trừ các vấn đề' instanceid'. –
adarshr
Cảm ơn ... số/ chung ít nhất đã thay đổi điều gì đó. Bây giờ URL của tôi trông giống như http: // localhost: 8080/web/guest/home/-/content /? P_auth = Yu81QQrj & p_p_lifecycle = 1 & _content_WAR_genticsportlet_INSTANCE_R2HSaoL5RkHi_contentid = 10007.34 Tôi cũng đặt có thể lập trình thành false nhưng tôi vẫn nhận được INSTANCE_R2 ... trong tham số contentid :/Có lẽ tôi chỉ phải chơi một chút thôi. –
csupnig