jetspeed开发实战

来源:互联网 发布:jordan鞋 知乎 编辑:程序博客网 时间:2024/06/06 19:40

 这里假设monsysweb服务的名称,其路径在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,则系统会去执行这个类         

 

 

原创粉丝点击