美文网首页
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