我在哪里可以获得liferay 7中的mvc.action.command名称列表?

时间:2017-01-30 09:44:58

标签: liferay liferay-7

我想知道在哪里可以获得liferay 7中的mvc.action.command名称列表。我想覆盖具有mvc.action.command=editArticle的类,因为我需要创建自定义EditArticleAction。这个类在liferay 6.2中有很好的定义,但是我需要在liferay 7中使用它的等价类。所以,请帮忙。任何形式的帮助将不胜感激。提前完成。

2 个答案:

答案 0 :(得分:0)

要创建动作命令,您需要通过创建实现MVCActionCommand接口的类来实现动作,您的类必须包含“@Component”注释。在您的情况下,您的类应该看起来像下面的代码片段。 @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 }

有关详细信息,请参阅本教程DXP MVC Action。 希望这对你有帮助,如果你有进一步的问题,请告诉我。

谢谢, Dipti

答案 1 :(得分:0)

在我看来,弄清楚这一点的最佳方法是使用整个Liferay代码的索引。

我创建了simple maven project,其中列出了所有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