2

我想知道在哪里可以获取 liferay 7 中的 mvc.action.command 名称列表。我想重写具有mvc.action.command=editArticle自定义的类EditArticleAction。这个类在 liferay 6.2 中有很好的定义,但我需要它在 liferay 7 中的等价类。所以,请帮忙。任何形式的帮助将不胜感激。提前谢谢。

4

2 回答 2

0

在我看来,解决这个问题的最好方法是使用整个 Liferay 代码的索引。

我创建了简单的 maven 项目,将所有 Liferay 包列为依赖项,以便您可以导入到您的 IDE 中。Intellij IDEA为 maven 项目提供了出色的索引/搜索功能。

让我们根据您的示例使用搜索文章更新操作。我通过以下正则表达式查询发现mvc.command.name=/.*article更新文章的操作是通过类中的"mvc.command.name=/journal/update_article"属性实现的UpdateArticleMVCActionCommand

@Component(
    immediate = true,
    property = {
        "javax.portlet.name=" + JournalPortletKeys.JOURNAL,
        "mvc.command.name=/journal/add_article",
        "mvc.command.name=/journal/update_article"
    },
    service = MVCActionCommand.class
)
public class UpdateArticleMVCActionCommand extends BaseMVCActionCommand {

该方法的另一个好处是,一旦找到所需的代码,您就会获得精确的工件坐标。在这种情况下,它是:com.liferay:com.liferay.journal.web:3.0.41

于 2020-05-22T00:36:36.460 回答
0

To create a action command you need to Implement the action by creating a class that implements the MVCActionCommand interface, your class must contain the '@Component' annotation. in your case your class should look like below code snippets. @Component( immediate = true, property = { "javax.portlet.name=your_portlet_name_YourPortlet", "mvc.command.name= editArticle" }, service = MVCActionCommand.class ) public class EditArticleMVCActionCommand extends BaseMVCActionCommand { // implement your action }

for more detail you can go through this tutorial DXP MVC Action. hope this will help you, let me know if you have a further question in this.

Thanks, Dipti

于 2017-01-31T12:00:48.507 回答