jetspeed界面修改

Jetspeed 界面修改

 

 

一、术语

 

1. PSML

PSML is an acronym for Portal Structure Markup Language. It was created to allow content structure and abstraction within Jetspeed. PSML defines how portlets are aggregated, layed out, and decorated on a portal page. Note that page layout is not a part of the Java Portlet Standard API. Thus PSML is a Jetspeed-specific implementation. Also note that PSML in Jetspeed-2 is different from PSML in Jetspeed-1. This document can be used as a reference guide to the elements of a PSML resource.

2. Velocity

Velocity 是一种通用的、开放源代码的模板解决方案,可以在报告生成/数据转换应用程序中独立使用,也可以在 MVC 模型框架中作为视图组件。(摘自http://www.ibm.com/developerworks/cn/java/j-velocity/)

 

 

 

 

二、Portlet界面

举例用户选择器multi-chooser-userspsml文件位置如下

Jetspeed- 2.1.3 /webapps/jetspeed/WEB-INF/pages/Administrative/choosers/multiusers.psml

 

1. 设置title

    <metadata name="title" xml:lang="zh">用户选择器</metadata>

 

2. 设置layout

<fragment id="mchooser-users" type="layout" name="jetspeed-layouts::VelocityOneColumnNoActions">

 

Name值有:

  • jetspeed-layouts::FrameLayoutPortlet
  • jetspeed-layouts::VelocityOneColumn
  • jetspeed-layouts::VelocityOneColumnNoActions
  • jetspeed-layouts::VelocityThreeColumns
  • jetspeed-layouts::VelocityThreeColumnsNoActions
  • jetspeed-layouts::VelocityThreeColumnsTable
  • jetspeed-layouts::VelocityTwoColumns
  • jetspeed-layouts::VelocityTwoColumns2575
  • jetspeed-layouts::VelocityTwoColumns2575NoActions
  • jetspeed-layouts::VelocityTwoColumnsNoActions
  • jetspeed-layouts::VelocityTwoColumnsSmallLeft
  • jetspeed-layouts::VelocityTwoColumnsSmallLeftNoActions
  • jetspeed-layouts::VelocityTwoColumnsTable

 

具体参考: http://portals.apache.org/jetspeed-2/guides/guide-psml.html#Layout_Fragments

 

 

3. 指定portlet

 

    <fragment id="mchooser-users-1" type="portlet" name="j2-admin::UserMultiChooser" >

    </fragment>

 

j2-admin指的是j2-admin.war

UserMultiChooserj2-admin.war下的portlet.xml中配置

 

二、css样式

    jetspeed中主要有portletlayoutdojo widget三种样式,它们分别管理portlet内部元素、portlet外部容器的布局和dojo的样式。

 

portlet

 

 

 

layout

 

 

 

 

dojo widget

 

 

 

 

 

三、自定义layout

 

第一步

首先可以复制一份样式(如sunflower文件夹复制成coss3文件夹);

文件夹内结构如下,大致内容同文件名意思。

 

 

第二步

修改decorator.properties

 

## 会显示在布局设置的主题列表中

id=coss3

 

template.type=velocity

template.extension=.vm

template.macros=-macros

decorates=layout

 

## 样式前缀,在生成的HTML代码中可以看出

base.css.class=layout-coss3

 

第三步

修改style.css

 

HTML代码中发现标题栏的class=”PTitleContent”,但是在style.css中却没有,那么可以增加以下代码:

.layout-coss3 .PTitleContent

{

       background: url(../images/list_table_box_right.png) top right no-repeat;

       border-bottom: 1px #8fbcd1 solid;

       height: 24px;

 

}

 

第四步

关于style中的image

因样式可以从coss2.0中复制过来,那么image也同样,由第三步可以看出,imageurlcoss2.0一样,则可以将coss2.0中的图片文件../images/list_table_box_right.png复制到

webapps/jetspeed/decorations/layout/coss3/images/list_table_box_right.png

(即本样式的images文件夹)

 

 

 

 

 

 

 

四、portlet内容修改

使用用户管理portlet进行举例说明,jetspeed采用Velocity模板引擎。有关Velocity的使用可参考“使用 Velocity 实现客户端和服务器端模板”

http://www.ibm.com/developerworks/cn/java/j-velocity/

 

 

1. portlet配置

j2-admin.war下的portlet.xml中定义了portlet-class

<portlet-class>org.apache.jetspeed.portlets.security.users.UserBrowser</portlet-class>

和初始参数init-param,如以下参数,指定了展示页面的模板文件。

    <init-param>

      <description>This parameter sets the template used in view mode.</description>

      <name>ViewPage</name>

      <value>/WEB-INF/security/users/user-browser.vm</value>

    </init-param>

 

2. 模板修改

源码位置

jetspeed- 2.1.3 /src/applications/j2-admin/src/webapp/WEB-INF/security/users/user-browser.vm

 

布署位置

Jetspeed- 2.1.3 /webapps/j2-admin/WEB-INF/security/users/user-browser.vm

 

注:修改后需要重启tomcat才能生效

 

3. Portlet修改

找到portlet.xml中定义的portlet-class,即可修改该portlet的业务逻辑。

 

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值