在编辑模式下创建Liferay Portlet

| 我正在尝试创建一个支持编辑以及查看模式的liferay portlet。 我正在使用liferay源中提供的默认MVCPortlet。 我已经如下配置了portlet.xml
<portlet>
    <portlet-name>inline-portlet</portlet-name>
    <display-name>inline</display-name>
    <portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
    <init-param>
        <name>edit-jsp</name>
        <value>/edit.jsp</value>
    </init-param>
    <init-param>
        <name>view-jsp</name>
        <value>/view.jsp</value>
    </init-param>
    <expiration-cache>0</expiration-cache>
    <supports>
        <mime-type>text/html</mime-type>
        <portlet-mode>view</portlet-mode>
        <portlet-mode>edit</portlet-mode>
    </supports>
    <portlet-info>
        <title>inline</title>
        <short-title>inline</short-title>
        <keywords>inline</keywords>
    </portlet-info>
    <security-role-ref>
        <role-name>administrator</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>guest</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>power-user</role-name>
    </security-role-ref>
    <security-role-ref>
        <role-name>user</role-name>
    </security-role-ref>
</portlet>
当我部署它时,我看不到在编辑模式下创建的任何新选项卡,这是我们单击扳手之类的图标。 是否有我缺少的任何配置。我已经在根目录中有edit.jsp和view.jsp。该视图是一致的,但无法找到edit.jsp,即未调用它。 有什么想法吗?     
已邀请:
我认为Liferay中的portlet编辑模式称为\“ Preference \”     
如果使用编辑模式创建自定义portlet,则该模式不会像Liferay的默认portlet一样出现在“配置”图标下方的选项卡下。取而代之的是,将通过一个名为“首选项”的新图标访问您的编辑模式的JSP。 Portlet规范仅定义了VIEW,EDIT和HELP模式,但允许将自定义Portlet模式添加到列表中。这正是Liferay为其默认portlet所做的。他们使用CONFIG定制portlet模式。有关如何实现此功能的示例,请查看该线程的最新文章。     
您是否已在
portlet.xml
中添加了Edit模式?像这样 ?
<supports>
    <mime-type>text/html</mime-type>
    <portlet-mode>view</portlet-mode>
    <portlet-mode>edit</portlet-mode>
    <portlet-mode>help</portlet-mode>
</supports>
必须在
portlet.xml
的配置的此部分中显式设置Portlet使用的所有模式,并且您必须对除视图模式以外的所有Portlet执行此操作。 您也可以在类中编写这样的模式处理程序,只需实现
PortletListener
至少对调试有用。
public void handleResourceRequest(ResourceRequest request,
            ResourceResponse response,
            Window window) {
// Switch the view according to the portlet mode
if (request.getPortletMode() == PortletMode.EDIT){
    this.addWindow(editWindow);
}else if (request.getPortletMode() == PortletMode.VIEW){
    window.setContent(viewContent);
}else if (request.getPortletMode() == PortletMode.HELP)
    window.setContent(helpContent);
}
还要检查portlet权限,您是否以管理员身份尝试过?他们无论如何都应该看到它。另一方面,普通用户应该有权设置特定Portlet的首选项。 干杯     
您必须创建实现的类
com.liferay.portal.kernel.portlet.ConfigurationAction
并且必须在portlet节点的“ 7”中注册它。
<portlet>
    <portlet-name>MyPortlet</portlet-name>
    <configuration-action-class>com.mydomain.MyConfigurationAction</configuration-action-class>
</portlet>
    
根据您的情况,除了
portlet.xml
配置之外,您还需要在您的类中实现可以扩展
MVCPortlet
doView
doEdit
processAction
方法。 《 Liferay in Action》一书就是一个很好的例子。 或者,您可以执行Liferay的jsp文件和taglib中的所有逻辑。单击首选项中的编辑模式可用。     

要回复问题请先登录注册