我正在为我的Liferay DXP开发一个模块,我正在努力调用我的renderCommand。
在初始渲染时以及每当我尝试单击指向RenderCommand的链接时,都会出现以下错误消息:
未找到portlet com_company_tools_manager_documents_web_portlet_documents portlet的MVC呈现命令名“/document-management/document/edit”的呈现Map
我有我的“view.jsp”,其中包含我的“init.jsp”、renderURL的创建和链接:
<%@ include file="./init.jsp" %>
<portlet:renderURL var="editDocumentURL">
<portlet:param name="mvcRenderCommandName" value="<%=MVCCommandNames.EDIT_DOCUMENT %>" ></portlet:param>
</portlet:renderURL>
<a href="${ editDocumentURL }">edit documents</a>
“MVCCommandNames.EDIT_DOCUMENT”是指MVCComandNames.java:
package com.company.tools.manager.documents.web.constants;
public class MVCCommandNames {
public static final String EDIT_DOCUMENT= "/document-management/document/edit"; }
我将该文件包含在“init.jsp”中,如下所示:
<%@ page
import="com.company.tools.manager.documents.web.constants.MVCCommandNames"%>
最后,我有一个“EditDocumentMVCRenderCommand.java”,它应该被视为一个组件,并连接到链接:
package com.company.tools.manager.documents.web.portlet.action;
import com.company.tools.manager.documents.web.constants.DocumentsPortletKeys;
import com.company.tools.manager.documents.web.constants.MVCCommandNames;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCRenderCommand;
import org.osgi.service.component.annotations.Component;
@Component(immediate = true, property = { "javax.portlet.name=" + DocumentsPortletKeys.DOCUMENTS,
"mvc.command.name=" + MVCCommandNames.EDIT_DOCUMENT}, service = MVCRenderCommand.class)
public class EditDocumentMVCRenderCommand implements MVCRenderCommand { (...) }
由“DocumentsPortletKeys.DOCUMENTS”调用的portlet名称由定义
package com.company.tools.manager.documents.web.constants;
public class DocumentsPortletKeys {
public static final String DOCUMENTS= "com_company_tools_manager_documents_web_portlet_DocumentsPortlet";
}
我忘记连接一些东西了吗?如何找到“EditDocumentMVCRenderCommand.java”所侦听的URL?关于如何处理这个问题还有其他建议吗?
问候语
2条答案
按热度按时间pqwbnv8z1#
我也遇到了同样的问题,并通过创建一个新的mvc模块来解决这个问题,只需使用最少的代码量(只包括您在本文中共享的文件),并尝试将重点放在渲染Map上。此外,如果您可以共享您的DocumentsPortlet。java验证“javax.portlet.name”属性是否正确。
sczxawaw2#
“未找到MVC渲染命令名的渲染Map”表示没有**表示渲染命令的JSP文件。
要使用MVC渲染命令,您需要以下内容:
在您的例子中,您缺少一个“render”jsp文件。在
EditDocumentMVCRenderCommand
中,它应该实现如下:您应该在路径中使用“/edit/document.jsp”,否则它将抛出您正在经历的错误。