我想知道在哪里可以获取 liferay 7 中的 mvc.action.command 名称列表。我想重写具有mvc.action.command=editArticle
自定义的类EditArticleAction
。这个类在 liferay 6.2 中有很好的定义,但我需要它在 liferay 7 中的等价类。所以,请帮忙。任何形式的帮助将不胜感激。提前谢谢。
2 回答
在我看来,解决这个问题的最好方法是使用整个 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
。
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