创建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.pngpackage 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)。
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
网友评论