gpt4 book ai didi

java - liferay 6.1 中的友好 URL

转载 作者:搜寻专家 更新时间:2023-11-01 03:41:04 24 4
gpt4 key购买 nike

我刚刚将博客(默认)portlet 的 url 更改为“http://localhost:8080/web/standorman/blogs/-/blogs/application-development-in-liferay

但我希望它成为“http://localhost:8080/web/standorman/blogs/application-development-in-liferay

有人可以建议我如何解决吗?

最佳答案

首先,如果不真正入侵 Liferay,您就无法摆脱/-/,而您并不想这么做(这会导致更多问题而不是好处)。所有你能摆脱的是一个“博客”,以像/web/standorman/-/blogs/application-development-in-liferay这样的URL结尾- 这对我来说似乎足够接近了。

以下是使用 https://github.com/DevJonny/Liferay-6-Friendlier-Friendly-URL-Mapper/ 的方法yannicuLar 建议这样做。

他的建议就这样对你不起作用,因为你正在尝试更改嵌入在 Liferay 本身中的开箱即用的 Liferay portlet。要改变这样的事情,必须使用 EXT 插件。所以这正是您应该做的。

第 1 步 - 在插件 SDK 中创建一个 EXT 插件(通过在插件 SDK 的“ext”子文件夹中运行 create.bat 或 create.sh)。

第 2 步 - 进入在 /docroot/WEB-INF/ext-impl/src 中创建的 ext 插件文件夹删除文件 portal-ext.properties , 而不是把这个文件 - https://github.com/DevJonny/Liferay-6-Friendlier-Friendly-URL-Mapper/blob/master/docroot/WEB-INF/src/com/mysmallcornerstudios/friendlierurlmapping/portlet/FriendlierFriendlyURLMapper.java进入它以使其位于路径

/docroot/WEB-INF/ext-impl/src/com/mysmallcornerstudios/friendlierurlmapping/portlet/FriendlierFriendlyURLMappe r.java

第 3 步 - 打开文件 docroot/WEB-INF/ext-web/docroot/WEB-INF/liferay-portlet-ext.xml用这样的内容填充它:

<?xml version="1.0"?>
<!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>33</portlet-name>
<icon>/html/icons/blogs.png</icon>
<struts-path>blogs</struts-path>
<configuration-action-class>com.liferay.portlet.blogs.action.ConfigurationActionImpl</configuration-action-class>
<indexer-class>com.liferay.portlet.blogs.util.BlogsIndexer</indexer-class>
<open-search-class>com.liferay.portlet.blogs.util.BlogsOpenSearchImpl</open-search-class>
<scheduler-entry>
<scheduler-event-listener-class>com.liferay.portlet.blogs.messaging.CheckEntryMessageListener</scheduler-event-listener-class>
<trigger>
<simple>
<property-key>blogs.entry.check.interval</property-key>
<time-unit>minute</time-unit>
</simple>
</trigger>
</scheduler-entry>
<scheduler-entry>
<scheduler-event-listener-class>com.liferay.portlet.blogs.messaging.LinkbackMessageListener</scheduler-event-listener-class>
<trigger>
<simple>
<property-key>blogs.linkback.job.interval</property-key>
<time-unit>minute</time-unit>
</simple>
</trigger>
</scheduler-entry>
<friendly-url-mapper-class>com.mysmallcornerstudios.friendlierurlmapping.portlet.FriendlierFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>blogs</friendly-url-mapping>
<friendly-url-routes>com/liferay/portlet/blogs/blogs-friendly-url-routes.xml</friendly-url-routes>
<preferences-unique-per-layout>false</preferences-unique-per-layout>
<preferences-owned-by-group>true</preferences-owned-by-group>
<use-default-template>false</use-default-template>
<scopeable>true</scopeable>
<private-request-attributes>false</private-request-attributes>
<private-session-attributes>false</private-session-attributes>
<render-weight>50</render-weight>
<header-portlet-css>/html/portlet/blogs/css/main.css</header-portlet-css>
<css-class-wrapper>portlet-blogs</css-class-wrapper>
<add-default-resource>true</add-default-resource>
</portlet>
</liferay-portlet-app>

此内容适用于我的 Liferay 版本。对于您的版本,您可能需要执行此操作以生成类似的内容:

  • 在您的 Liferay 发行版中找到文件 liferay-portlet.xml(对于 Tomcat 捆绑发行版应该在 webapps/ROOT/WEB-INF 中,但对于其他麻烦可能在不同的位置 - 只需搜索它)
  • 在该文件中找到 <portlet>...</portlet>具有 <portlet-name>33</portlet-name> 的部分在里面
  • 复制里面的整个部分<liferay-portlet-app><!-- copied text goes here --></liferay-portlet-app>到上述文件 docroot/WEB-INF/ext-web/docroot/WEB-INF/liferay-portlet-ext.xml在您的 EXT 插件中。
  • 替换行 <friendly-url-mapper-class>...</friendly-url-mapper-class><friendly-url-mapper-class>com.mysmallcornerstudios.friendlierurlmapping.portlet.FriendlierFriendlyURLMapper</friendly-url-mapper-class>
  • 删除行

``

<portlet-data-handler-class>com.liferay.portlet.blogs.lar.BlogsPortletDataHandlerImpl</portlet-data-handler-class>
<social-activity-interpreter-class>com.liferay.portlet.blogs.social.BlogsActivityInterpreter</social-activity-interpreter-class>
<xml-rpc-method-class>com.liferay.portlet.blogs.util.PingbackMethodImpl</xml-rpc-method-class>
<asset-renderer-factory>com.liferay.portlet.blogs.asset.BlogsEntryAssetRendererFactory</asset-renderer-factory>
<atom-collection-adapter>com.liferay.portlet.blogs.atom.BlogsEntryAtomCollectionAdapter</atom-collection-adapter>
<custom-attributes-display>com.liferay.portlet.blogs.BlogsEntryCustomAttributesDisplay</custom-attributes-display>
<workflow-handler>com.liferay.portlet.blogs.workflow.BlogsEntryWorkflowHandler</workflow-handler>

第 4 步 - 部署你的 ext 插件(在它的文件夹中运行 ant 来构建它,进入 Plugins SDK 中的子文件夹“dist”,找到你的插件的 .war 文件 - 通过将该 .war 文件复制到 Liferay 来部署它Liferay distrib 中的“部署”文件夹)并重新启动 Liferay。

应该这样做。

关于java - liferay 6.1 中的友好 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14259338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com