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