美文网首页
Liferay添加新建portlet

Liferay添加新建portlet

作者: 降龙十八段 | 来源:发表于2017-10-19 13:52 被阅读0次

创建module project名为test1,


Paste_Image.png

根据需求选择Project Template Name (一般为mvc-portlet,持久层为service-builder)


Paste_Image.png

创建的模块项目结构如下


Paste_Image.png

定义PortletKeys(为不同的ortlet 定义不同的key)

Paste_Image.png

一个module项目可以创建多个portlet,新建的portlet需要继承MVCPortlet,每一个portlet可以有view和edit两种模式,默认为view模式。view模式视图对应的后台方法为doView(),edit模式视图对应的后台方法为doEdit()。新建portlet 名为 Portlet11。

Paste_Image.png
package test1.portlet;

import java.io.IOException;

import javax.portlet.Portlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.osgi.service.component.annotations.Component;

import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;

import test1.constants.Test1PortletKeys;

@Component(
        immediate = true,
        property = {
            "com.liferay.portlet.display-category=category.sample",
            "com.liferay.portlet.instanceable=true",
            "javax.portlet.display-name=Portlet11",  //设置页面显示的portlet 名字
            "com.liferay.portlet.requires-namespaced-parameters=false", // 设置命名空间为false,若不创建namespace,能接收到portlet数据
            "javax.portlet.init-param.template-path=/",
            "javax.portlet.init-param.view-template=/view11.jsp", //设置portlet 对应的页面
            "javax.portlet.name=" + Test1PortletKeys.Test11,  //设置portlet名字
            "javax.portlet.resource-bundle=content.Language",
            "javax.portlet.security-role-ref=power-user,user"
        },
        service = Portlet.class
    )
public class Portlet11 extends MVCPortlet {
    @Override
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
            throws IOException, PortletException {
        super.doView(renderRequest, renderResponse);
    }
    @Override
    public void doEdit(RenderRequest renderRequest, RenderResponse renderResponse)
            throws IOException, PortletException {
        super.doEdit(renderRequest, renderResponse);
    }
}

2.4Command介绍
command是控制跳转的核心控制器,有3种形式的控制器:

MVCActionCommand:同一个portlet下的参数传递。
继承BaseMVCActionCommand,实现doProcessAction(ActionRequest actionRequest, ActionResponse actionResponse)。
在view模式下执行完doProcessAction()方法后会执行portlet的doview()方法,在edit模式下执行完doProcessAction()后会执行portlet的doedit()方法,actioncommand的作用是实现同一个portlet下的参数传递。

MVCRenderCommand:页面跳转控制器。
实现MVCRenderCommand,实现render(RenderRequest renderRequest, RenderResponse renderResponse)。返回的String为指定要跳转的页面,如“/showDetail.jsp”。

MVCResourceCommand:文件上传、下载、获取json字符串格式数据。
实现MVCResourceCommand,实现public boolean serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)。

Paste_Image.png

server 添加模块项目

Paste_Image.png

添加test1


清理/添加模块项目


Paste_Image.png Paste_Image.png

新建公开页面


Paste_Image.png

页面基本设置


Paste_Image.png

添加新页面

Paste_Image.png

配置页面(url)


Paste_Image.png

”+“ >> 应用程序 >> 示例中的portlet11的添加,自定义的portlet 可以多次添加,如图:


Paste_Image.png

相关文章

网友评论

      本文标题:Liferay添加新建portlet

      本文链接:https://www.haomeiwen.com/subject/xeruuxtx.html