新增门户卡片
一、卡片展示
portlet的前端展示需要利用的是JSP页面,自定义即可,示例如下
新建JSP:{HOME}:/server/deploy/portal.ear/plt_sp.war/WEB-INF/fragments/demo/helloWorld/HelloWorldPortlet_view.jsp
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%-- Uncomment below lines to add portlet taglibs to jsp <%@ page import="javax.portlet.*"%> <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%> <portlet:defineObjects /> --%> <b> VIEW MODE </b>
此外,可以利用如下方式,从JSP向后台发送参数信息:
<form id="dataForm" class="KdAjaxForm" action="<portlet:actionURL windowState="normal" portletMode="view"></portlet:actionURL>"> <table> <tr> <td> //需要发送的参数名称与内容 <input type="text" id="param" name="param" value='param'/> </td> </tr> <tr> <td><button type="button" class="button" ></button></td> </tr> </table> </form>
二、后台实现类
不做任务业务实现,仅用来将请求转发到相应的业务界面(即步骤1中新建的JSP页面),示例如下:
新增java类:
com.kingdee.portal.plt.sp.module.demo.portlet.HelloWorldPortlet需要继承 javax.portlet.GenericPortlet抽象类
有四个接口可供重写,分别用来进行请求转发与参数处理
1、请求转发接口
doView(RenderRequest request, RenderResponse response) doEdit(RenderRequest request, RenderResponse response) doHelp(RenderRequest request, RenderResponse response)
以上三个接口主要实现页面的转发,不做具体的业务处理,会将请求转到portlet卡片的前端界面
因此需要什么界面,就实现相应的接口即可,不需要全部重写,代码示例:
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { response.setContentType("text/html"); try { String param=""; PortletPreferences pf = request.getPreferences(); //获取portlet的所有参数信息 Map<String, String[]> preferencesMap = pf.getMap(); if (preferencesMap!=null){ if (preferencesMap.get("param")!=null){ param = preferencesMap.get("param")[0]; } } //将参数发送至业务层,供其使用 request.setAttribute("param", param); } catch (Exception e) { request.setAttribute("error","error!"); } PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/fragments/demo/helloWorld/HelloWorldPortlet_view.jsp"); //转发请求至前端(HelloWorldPortlet_view.jsp) dispatcher.include(request, response); }
public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException { response.setContentType("text/html"); PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/fragments/demo/helloWorld/HelloWorldPortlet_edit.jsp"); dispatcher.include(request, response); }
2、参数处理接口
processAction(ActionRequest request, ActionResponse response)
接收前端请求所发送的业务参数,进行入库,持久化至表T_JP_PortletRuntimePreferences中
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException { String param=request.getParameter("param"); PortletPreferences preferences = request.getPreferences(); preferences.setValue("param", param); //持久化 preferences.store(); }
三、增加新卡片的信息配置
1、配置文件路径
{HOME}:\server\deploy\portal.ear\plt_sp.war\WEB-INF\portlet.xml
2、示例
<portlet> <description xml:lang='en'>Hello World</description> <description xml:lang='zh-CN'>测试示例</description> <description xml:lang='zh-TW'>測試示例</description> <portlet-name>HelloWorldPortlet</portlet-name> <display-name xml:lang='en'>Hello World</display-name> <display-name xml:lang='zh-CN'>测试示例</display-name> <display-name xml:lang='zh-TW'>測試示例</display-name> <portlet-class> com.kingdee.portal.plt.sp.module.demo.portlet.HelloWorldPortlet </portlet-class> <init-param> <name>portlet-icon</name> <value>/res/img/plt_icons/HelloWorldPortlet.webp</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> <portlet-mode>HELP</portlet-mode> </supports> <portlet-info> <title>HelloWorldPortlet</title> <short-title>HelloWorldPortlet</short-title> <keywords>plt_sp,HelloWorldPortlet</keywords> </portlet-info> </portlet>
标签参数说明:
(1)portlet-name:卡片的唯一标识
(1) display-name:portlet卡片的显示名称
(2) description :portlet卡片的描述信息
(3) portlet-class:卡片所对应的后台处理类(步骤二中新建的JAVA类)
(4) supports:portlet卡片所支持的模式
(5) init-param:portlet卡片的自定义初始化参数
四、增加新卡片的初始化配置
1、配置文件路径
{HOME}:\server\deploy\portal.ear\plt_sp.war\WEB-INF\web.xml
2、示例
<servlet> <servlet-name>HelloWorldPortlet_Servlet</servlet-name> <servlet-class>org.apache.pluto.container.driver.PortletServlet</servlet-class> <init-param> <param-name>portlet-name</param-name> <param-value>HelloWorldPortlet</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>HelloWorldPortlet_Servlet</servlet-name> <url-pattern>/PlutoInvoker/HelloWorldPortlet</url-pattern> </servlet-mapping>
标签参数说明:
(1)servlet-name:与servlet-mapping的参数servlet-name对应.
(2)load-on-startup:初始化时机,0为懒加载,1主服务启动进行加载.
(3)servlet-class:portlet卡片驱动类,路径
(4)url-pattern:servlet的映射路径,命名格式为/PlutoInvoker/{portlet-name}.
五、注册Portlet卡片
进入门户管理界面(administrator登录),Portlet管理 - 应用包管理
1、注册应用包
2、启用新加的portlet卡片
六、使用Portlet卡片
Portlet卡片成功注册后,可以在门户的任何页签下引入,以我的工作台为例,进行全局配置:
门户管理 - 首页菜单配置 - 首页 - 我的工作台
选择需要的卡片进行添加,最终点击完成即可
新增门户卡片
本文2024-09-22 20:16:02发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-112521.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf