这里假设monsys为web服务的名称,其路径在webapps/下面 1,jetspeed的图片处理 图片默认放在monsys/images下面, 调用方法:$clink.setURI("images/test.jpg") 2,javascript处理 javascript黑认放在monsys/javascript下 调用方法:$clink.setURI("javascript/test.css") 3,portlets的位置位于monsys/WEB-INF/templates/vm/portlets/html下面 4,页面总体布局控制看JetspeedResources.properties bottomnav.enable=true bottomnav.vm=bottom.vm leftnav.enable=true leftnav.vm=left.vm leftnav.width=10% topnav.enable=true topnav.vm=top.vm topnav.logo.file=images/jetspeed-logo-1.5.gif topnav.logo.url= topnav.user_login.enable=true topnav.user_creation.enable=true topnav.my_pages.enable=true 5,portlets源代码分析: portlet主要实现三个方法: <1>,buildMaximizedContext最大化 <2>,buildConfigureContext显示信息 <3>,buildNormalContext正常情况,也就是所看到的正常显示时所要显示的信息 <4>,调用时,在添加模块时添加新参数action=portlets.GraphDailyAction package org.apache.jetspeed.modules.actions.portlets; import .............(N个,略) public class GraphDailyAction extends VelocityPortletAction { /** * Subclasses should override this method if they wish to * build specific content when maximized. Default behavior is * to do the same as normal content. / protected void buildMaximizedContext(VelocityPortlet portlet, Context context, RunData rundata) { buildNormalContext(portlet, context, rundata); String text = (String) context.get("text"); if (text == null) { text = "Top Record of baccarat game"; } context.put("text", text + " (Maximized !)"); } /* * Subclasses should override this method if they wish to * provide their own customization behavior. * Default is to use Portal base customizer action / protected void buildConfigureContext(VelocityPortlet portlet, Context context, RunData rundata) { buildNormalContext(portlet, context, rundata); setTemplate(rundata, "hello-customize"); } /* * 这是主要部份 * Subclasses must override this method to provide default behavior * for the portlet action */ protected void buildNormalContext(VelocityPortlet portlet, Context context, RunData rundata) { String mode= portlet.getPortletConfig().getInitParameter("mode"); //读取添加模块时从配置文件传来的参数 String searchdate = rundata.getParameters().getString("searchdate"); //取得从页面提交得到的参数 context.put("mode",mode); context.put("searchdate",searchdate)//输出页面要显示的信息,支持输出数组,对像,及容器等形式的数据 } } <5>写好源代码,并编译,参考 里的: 1,<3>所建的参数action,其值为portlets.GraphDailyAction,则系统会去热行这个类
jetspeed开发实战
comments powered by Disqus