StringbeansTM Portal管理手册<译>[转载请标出处]

StringbeansTM Portal管理手册

Stringbeans框架下的门户网站管理指南


    最近在学习Portal网站开发,接解到Stringbeans框架,在学习的过程中,翻译了该文档。该文是基于2.1版本的。目前已经存在的是3.5版本。不过大同小异仅供参考。由于个人能力有限,有些地方翻译的不准确。还请参照原文档来理解其含义。
    
    也提供了文档下载
    谢谢!


 
 

版本历史

v 0.9

2003/11/10

v 1.0

2004/1/4

v 1.1

2004/4/17

v 2.0

2004/6/6

v 2.1

2004/7/26

v 2.1.1

2004/8/17


StringbeansTM Portal管理手册

Stringbeans框架下的门户网站管理指南

Table of Contents

内容列表

许可证

Stringbeans 是一款自由软件;在基于免费软件基金发布的GUN GPL协议下,您可以重新分配或修改它(或者是版本2的许可证或最新版本)。

简介

StringbeansTM 门户产品是由门户组件容器和有效管理门户应用程序框架组成。当前版本的主要特点是:

·        依照JSR 168标准部署门户组件

·        门户组件和用户登录日志可以存放在文件和数据库中

·        预设门户组件的访问控制基于用户ID,角色,和任意的(目前流行的)关系型数据库

·        门户组件视图基于用户ID,角色,和它们之间的关系

·        主题机制提供了个性化的外观和体验

·        门户组件可以用来展现RSS头条,从数据库表中提取数据以多页标签的形式展现,报表,图表,通过XSL处理的XML文档,本地或远程文件内容。

·        SSL连接支持

·        JAAS认证支持

·        对用户默认视图,日志方法,门户组件权限,和门户应用程序访问控制的交互配置。

·        门户组件管理允许快速地创建、配置、移除、和部属门户组件

·        内置用户身份认证和数据源

·        Built-in user authentication and creationof data sources.

·        XHTML-MP and WML 支持.

·        包含 MVCPortlet.

Stringbeans 被部署于J2EE WEB应用程序容器中(servlet2.3/2.4 jsp1.2/2.0)。不需要EJB支持。当前版本已在 tomcat4.1.x和tomcat5.0.1x测试过。没有明确指定使用哪种web服务器。数据库已在SAPDB 7.4.03, HypersonicSQL 1.7.1, MySQL 4.0.17, PostgreSQL 7.4.1 andFirebird 1.5.1上测试过。

安装

前提条件:

·        Servlets/JSP容器 必须支持severlet2.3/jsp1.2或servlet2.4或jsp2.0版本。

·        A JDBC 2.0允许的关系型数据库.

·        JDK1.4以上版本 JAVA_HOME 环境变量,已指向安装目录

TomcatStringbeans的安装

从2.0版以后,在stringbeans-webapp-x.x.zip中stringbeans Web应用是以WAR文件进行部署的。在引之前,主要的部署方法是做为根应用部署。这人压缩包绑定了一个tomcat服务器做为stringbeans安装的根环境。如果您下载了此安装包,您不需要设置任何事情。

Tomcat下运行stringbeans服务

1.   下载 stringbeans-x.x_tomcat-4.1.xx.zip 压缩包.

2.   解压安装包.将会创建 jakarta-tomcat-4.1.xx目录

3.   启动tomcat   Windows: <tomcat根目录>\bin\startup.bat   Unix or Linux: < tomcat根目录>/bin/startup.sh

4.   Tomcat 被设置成运行stringbeans的根环境。

以下内容用来介绍部署war文件,也是将其部署在根环境下。

部署stringbeans WAR文件

下载WAR文件。

1.   解压压缩包.包中将包含stringbeans.war、安装说明、示例数字证书

2.   拷贝 stringbeans.war 文件到 <tomcat-root-dir>/webapps 目录  <tomcat-root-dir> 指的是tomcat安装的根目录。

3.   启动tomcat

4.   WAR文件已经被配置成可以运行的应用。无需其它配置,只要将其放入tomcat/webapp目录下即可运行。如果您满足于默认设置,您可以跳过门户设置章节

5.   默认的预配置了Hypersonic SQL数据库。您无需重新配置它。如果想使用其它数据库,你必须要进行配置。在portal.xml 配置文件中的<local-data-sources> 标签。当配置完数据库设置,您必须重新启动tomcat使其生效。数据创建章节提供了数据库详细参数设置说明,用来配置数据源。

6.    提供安全链接支持,您必须配置您的web服务器。如果tomcat做为一个独立的web服务,将有必要将tomcat设置成高级的安全套接字。当tomcat运行在其它web服务(例如apache),通常将有必要设置主web服务器处理从用户登录的SSL数据。关于这部份web 服务器文件中将会有更详细的说明。链接:http://tomcat.apache.org/tomcat-4.1-doc/ssl-howto.html

也可以参看本文档中的SSL创建章节

7.   默认情况下Stringbeans对用户密码在存储到数据库之前要做加密。参看:启用/关闭密码加密功能。

Stringbeans作为根应用部署

1.   Stringbeans做为根环境安装(意味着访问stringbeans门户应用只需要键入http://http://<server-name>,取带http://<server-name>/stringbeans), 解压stringbeans.war文件到名为”stringbeans”的目录下。如果没有需要手动创建。

注意:

o   如果您之前已经部署了stringbeans.war,您只需要将其移动或“剪切粘贴”stringbeans目录从<tomcat-root-dir>/webapps 目录到 <tomcat-root-dir>

o   Stringbeans也可以以war包的形式部署到tomcat根环境下。如之前提到的stringbeans-x.x_tomcat4.1.xx.zip包中的形式

2.   移动“Stringbeans”目录及目录下所有的子目录到tomcat根目录下。

注意:

o   Stringbeans安装目录将其引用为<stringbeans-webapp-root>.

o   <tomcat根目录>/webapps/stringbeans等于 <stringbeans-webapp-root>

Stringbeans 目录结构:

        stringbeans

                 |

                 |------ doc

                 |

                 |------ error

                 |

                 |------ login

                 |

                 |------ my

                 |

                 |------ personalize

                 |

                 |------ portlets

                 |            |

                 |            |------ portal_admin

                 |            |

                 |            |------ user_admin

                 |            |

                 |            |------ <other portlets>

                 |

                 |

                 |------ themes

                 |            |

                 |            |------ images

                 |

                 |

                 |------ WEB-INF

                              |

                             |------ lib

                              |

                             |------ db

                              |

                             |------ cert

                              |

                             |------ setup

                              |          |

                              |          |------ sql

                              |

                             |------ logs

                              |          |

                              |          |------ portal

                              |

                             |------ users

 

       

3.   修改tomcat配置文件: server.xml, 在 <tomcat-root-dir>/conf 添加如下标记:        <Context path="" docBase="../stringbeans" debug="0" />

Tomcat典型的根环境是:ROOT,如果它被设置成有效,则需要改它的名字为任意名字,如下:

  <Context path="root" docBase="ROOT"debug="0"/>

 

4.   您可以连接stringbeans门户,通过输入web服务器名称。

连接到stringbeans门户应用

·        启动浏览器,输入地址:: http://<server name 或 IP address>:<port-number>/stringbeans, 例如,

    http://localhost:8080/stringbeans

将出现登录页面

注意:

o   如果您下载的压缩包绑定了tomcat,stringbeans将会被安装成为根应用。您只需要输入:   http://localhost:8080 即可

·        从其它支持XHTML-MP或WML设置访问应用,将以上述同样的方式进行访问。

§  输入URL 例如. http://192.168.0.100:8080/stringbeans 将前往门户登录页面

§  根据页面的指示进行访问.

§  仅有很少的门户组件支持XHTML-MP和WML访问。

      您可以如下预设用户进行登录:

§  admin: 拥有额外的管理用户和监控用户特权。只有admin可以创建用户

§  登录模板:用来配置登录页面

§  默认模板:设置用户的默认视图 默认模板是用户第一次登录的视图或布局

§  属性模板:用来配置属性总局

§  视图用户模板:配置用户属性页面布局的视图

      预定义的 HypersonicSQL 数据定义了如下用户名/密码:

user

password    

admin

  admin

default-template

  default

login-template

  login

preference-template

  preference

view-user-template

  view

创建新用户

·        以admin登录。通过点击菜单栏上的标签链接 前往 ”User Admin” 界面。

·        您将会在面板的左侧看到用户和角色菜单,用户列表将以高亮显示。点击“new user”按钮将链接到新页面。不要忘记在底下的角色列表中选择用户的角色。

·        如果 allow-self-registration 标签出现在(默认)portal配置文件中(portal.xml),stringbeans允许新用户在登录页面上通过链接来自注册一个新用户

更多的stringbeans配置

·        配置stringbeans主配置文件 大部分时间,您不需要修改该配置文件。当以admin用户登录时,可以使用交互式的门户配置方式。 stringbeans的主配置文件: 在 <stringbeans-webapp-root>/WEB-INF/ 目录下 portal.xml 和 portlet.xml 。portal.xml将在下面解释。由于portlet.xml是标准的JSR168描述文档。将不在本文中进行过多的讨论。然而,在当前stringbeans内建的portlet类型,将会在门户组件章节进行讨论。如一些特殊的门户组件是从基本的门户组件创建而来。帮助文件可以通过点击每个门户组件的帮助模式来提供帮助。

注意:

o   如果你直接修改了配置文件,改变将在容器下次重启时生效。

·        新建和部署新的门户组件到stringbeans门户中

·        当前stringbeans版本提供交互式的添加,禁用,移除,配置stringbeans内建的门户组件类型管理。例如:图表,文件,单行编辑,报表,RSS,表格,链接,和XSL等组件。在运行时,如果你想附加组件类型并想将其集成一个门户页面,如要通过如下步骤:

§  添加和配置你的门户组件在portlet.xml配置文件中。

注意:

o   门户组件必须完全符全JSR168标准

§  添加你的门户组件类文件.class(jar)在<stringbeans-webapp-root>/WEB-INF/lib/ 目录下。

§  如查有jsp文件,强烈建议在<stringbeans-webapp-root>/portlets/ 目录下建立新的目录来存放你的门户组件。

§  重启tomcat.

      Stringbeans提供国际化功能。 当前支持的国际化有 美英, 英英, 德语,法语, 印尼 和 西班牙.要添加其它国际化,请参见国际化章节。

      登录应用程序配置portal.xml。个性化登录页面,以登录模板用户登录并设置个性化链接地址。

数据库服务器设置

·        Stringbeans 必须工作在JDBC 2.0 支持的关系型数据库上。以下数据库在当前版本中已经做过测试: Hypersonic SQL1.7.1, MySQL 4.0.17, SAPDB 7.4.03, PostgreSQL 7.4.1 and Firebird 1.5.1.

·        预设的Hypersonic数据库已经包含在stringbeans发行版本中。没有必要对该数据库进行重新定义。它已经可以使用。数据库文件被保存在 <stringbeans-webapp-root>/WEB-INF/db 目录下。

·        要配置stringbeans工作在其它数据库下,需要修改portal.xml配置文件下的<local-data-sources>属性,这里会有三个默认的数据源被定义。没有必要去配置所有的数据源来使用相同的数据库

注意:

o   如果使用除Hypersionic数据库以外的数据库,那么相应的数据库JDBC JAR文件,必须复制到 <stringbeans-webapp-root>/WEB-INF/lib目录

o   还必须在 <local-data-sources>标签中配置相应的属性:JDBC驱动类名,数据库用户名和密码(3.5版还要配置maxIdle,maxActive)

·        和stringbeans的发行版本一样,不同的数据库的数据脚本存放于webapp/stringbeans/WEB-INF/setup/sql, 文件夹内。选择与您使用的数据库匹配的数据库脚本。例如sb_sapdb.sql是针对SAPDB数据库的。配置stringingbeans 工作于不同的数据库,你必须修改portal.xml配置文件。具体操作参见<local-data-sources> 标签创建章节

SAPDB

·        创建并注册数据库实例, 例如: SBDB

·        创建用户,例如 :sa with DBA NOT

创建用户命令中的EXCLUSIVE属性是为了使用户在同一时间打开多个会话有效。创建用户脚本如下: CREATE USER sa PASSWORD pw DBA NOT EXCLUSIVE 注意只有DBA用户才能创建用户,所以你必须以DBA登录。

·        以管理员用户登录数据库,可以依照如下步骤:

如果你使用图形界面,例如:SQLStudio,打开并执行在 <stringbeans-webapp-root>/WEB-INF/setup/sql/目录下的脚本sb_sapdb.sql 将创建所有需要的表。

·        JDBC驱动通常会在<SAPDB_HOME>/dep/misc的安装路径下找到sapdbc.jar文件。

·        驱动类 ==> com.sap.dbtech.jdbc.DriverSapDB

·        URL ==> jdbc:sapdb://<database hostname>/<database name>,    

·        SAPDB 在线文档

HypersonicSQL

·        HypersonicSQL jar 文件 (hsqldb.jar) 包含了数据库服务,管理工具和JDBC驱动。

·        如果默认使用该数据库,不需要做任何事情来创建数据库。所有的数据库相关文件都被存储于<stringbeans-webapp-root>/WEB-INF/db目录

·        默认数据库 HypersonicSQL数据库可以通过数据库管理工具进行管理。你可以找到一些文件(windows)或 shell脚本文件在

·        The default HypersonicSQL database can bemanaged using Database Manager utility. You can find batch (Windows) and shellscript (Unix/Linux) files in <stringbeans-webapp-root>/WEB-INF/db 目录下,通过 java -classpath../lib/hsqldb.jar org.hsqldb.util.DatabaseManager -url jdbc:hsqldb:SBDB命令来启动管理

·        驱动: org.hsqldb.jdbcDriver

·        URL (Server mode):jdbc:hsqldb:hsql://<database host name>/<database name>,    例如. jdbc:hsqldb:hsql://localhost

·        URL (Standalone mode):jdbc:hsqldb:<database name>,    例如 jdbc:hsqldb:SBDB

·        HypersonicSQL

MySQL

·        安装此数据库,请参见 MySql文档

·        驱动: com.mysql.jdbc.Driveror org.gjt.mm.mysql.Driver

·        URL: jdbc:mysql://localhost/

·        JAR:JDBC driver.

·        MySQL 在线文档.

PostgreSQL

·        参见PostgreSQL文档

·        Driver: org.postgresql.Driver

·        URL: jdbc:postgresql://<database hostname>:<host port>/<database name>

·        JAR:JDBC driver.

·        PostgreSQL 在线文档.

Firebird

·        参见 Firebird 文档.

·        Driver: org.firebirdsql.jdbc.FBDriver

·        URL: jdbc:firebirdsql://<database hostname>:<host port>/<database name>

·        JAR:JDBC driver.

·        Firebird:在线文档

启用/关闭密码加密

·        默认情况,stringbeans将用户密码在存储到数据库之前要进行加密。如果要开启/关闭密码加密功能,你必须更新在启用数据库中的密码字段

·        初始化数据库脚本提供的预设用户密码是加密的。密码的明文在预定义用户章节提到过。参见相应章节。

·        如查您想清除数据库中存放的密码(关闭密码加密)可以通过如下步骤:

§  在portal.xml中移除 <encrypt-password>

§  上一步的执行可以通过手动修改配置文件(需要重启tomcat)或使用门户应用配置门户组件(运行时)

两种方法,你都必须更新更新注册用户的密码在SB_USERS表中设置用密码为明文开式,使用如下sql脚本: UPDATE SB_USERS SET pass_word='admin'WHERE userid='admin' 对所有的用户重复执行类似命令。

§  反之,启用密码加密也要通过上述步骤完成。

 

SSL (Secure Socket Layer) 安装

SSL允许web浏览器和web服务器之前通信建立在一个安全的连接上。安全门户组件需要SSL连接提供支撑。下面将描述怎样在tomcat上建立SSL。你也可以参考tomcat怎么样建立SSL文档。该步骤仅需要tomcat作为单独的web服务。当以tcomcat为主要的 servlet/jsp容器运行在其它web服务后面。例如Apache,通常有必要设置主web服务器。例如Apache来处理来自用户的SSL链接。

 

·        获取数字证书 stringbeans 提供了”demo”认证,demo.jks,在Web发行版本压缩包内和stringbeans.war同一目录。你也可以<stringbeans-webapp-root>/WEB-INF/setup/cert/demo.jks 下找到同样的文件。

·        拷贝证书文件到一个目录。如果你拷贝到tomcat根目录,你以在下一步的配置中使用相对路径。

·        修改tomcat配置文件server.xml tomcat根目录/conf目录下

§  删除从SSL/HTTP1.1 Connector部份的注释

§  在<context>标签内添加<factory>标签(tomcat4.x)或在tomcat 5.x的<Connectior>标签下添加

keystoreFile = “认证文件路径”

keystorePass = “keystore密码”

·        “认证文件路径”是指向认证文件的路径。可以是绝对或相对路径例如:

webapps/stringbeans/WEB-INF/setup/cert/demo.jks

注意:

o   路径必须是已经存在的路径,你不能指向stringbeans的目录内,除非它是非压缩

§  <keystore密码>: 如果使用demo的认证文件密码是“passwd”

·        Tomcat默认端口普通:8080,https是8433。你可以设置这些端口号在<Connector>标签内,标签的非安全连接是80,安全的连接端口为433。如果你修改此项,你必须设置“redirectPort(得定向端口)”数值在匹配的非安全<Connector>标签内或匹配的安全<Connector>标签。

注意:

o   如果非标准端口被使用一个或两个都用,你必须在portal.xml文件中设置门户URL前缀或门户安全URL前缀。你也可以在运行时选择”portal basic configuration”组件配置该项

当用户第一次使用SSL访问安全页面时,将会强出一个关于认证详细信息的界面。当使用“demo”认证时安全警告对话框将会弹出,这是正常的。用户必须接受认证才能运行程序。

JAAS (Java Authentication and Authorization Service)配置

1.   默认情况,stringbeans使用内建的用户认证和数据源来认证用户。要使用JAAS你必须在stringbeans应用的web (<stringbeans-webapp-root>/WEB-INF/web.xml)部署描述符中设置jaas_login_app_name参数到Login过滤器初始化参数中。如下示例展示“SBPortalLoginApp”登录应用程序。该程序名必须必须与下一步中配置的登录模块的名称一致。

2.          <init-param>

         <param-name>jaas_login_app_name</param-name>

        <param-value>SbPortalLoginApp</param-value>

         <description>JAASlogin application name</description>

       </init-param>

  

3.   创建登录模块配置文件,stringbeans提供了登录配置文件sb-jaas.login在目录<stringbeans-webapp-root>/ WEB-INF/下。该配置文件标明了JAAS应用的名称和使用的登录模块。 下面的示例展示了在sb-jaas.login文件中,应用程序”SBportalLoginApp”和由stringbeans提供的登录模块“DBLoginModule”,如查你有自己定义的实现,请在这里声明 SbPortalLoginApp

       {

           com.nabhinc.portal.auth.DBLoginModule required

      }

4.   修改java.security主文件(大多数情况,该文件位于jre目录/lib/security目录下)。

·        添加登录,配置,URL名值对来标识你在第二步中配置的文件(通常在java.security文件的”Default Login Configuration File”部分进行配置)例如:  login.config.url.1=file:${tomcat-home}/webapps/stringbeans/WEB-INF/sb-jaas.login

注意:

替换  ${tomcat-home} 变量为你的真实路径

 

·        为JAAS添加其它权限,可以通过以下两个步骤

§  在java.security后添加java.policy.url键。Stringbeans提供了sb-jaas.policy策略文件(<stringbeans-webapp-root>/WEB-INF/),该文件标明必要的认证用户权限。Java.security文件通常会指定默认的策略文件。例如

policy.url.3=file:${tomcat-home}/webapps/stringbeans/WEB-INF/sb-jaas.policy

或者

添加额外的java.policy文件到jre目录/lib/security/java.policy

grant codeBase"file:${tomcat.home}/webapps/stringbeans/WEB-INF/lib" {     permission javax.security.auth.AuthPermission"createLoginContext";     permission javax.security.auth.AuthPermission "modifyPrincipals";     permission javax.security.auth.AuthPermission"modifyPrivateCredentials";     permission javax.security.auth.AuthPermission"doAsPrivileged";   }

默认的java.policy通常被包含在java.securtiy文件中,所以你不必再到java.security文件中修改。

配置

登录页面配置

当一个用户第一次访问主门户页面,他/她将会被重安向到登录页面,该页面显示输入用户名密码表单项。登录页面是一个模板,我们可以交互地修改它。如要这样做,参见登录模板。一旦登录,点击“personalize”链接来编辑“home”页面。确认在你的布局中已包含”LoginPortlet”。当完成配置,单击“save”按钮来保存为新的模板。

配置默认门户视图

当用户自定义视频为找到时,Stringbeans 预定义了默认的视图将被显示。例如,新用户,编辑这种布局,首先以默认用户登录。像编辑你的个性化页面布局一样创建或编辑门户页面。所有没有配置个性化页面的用户将呈现该页面为默认视图。

门户组件配置

门户组件是通过stringbeans服务加载指定文件portlet.xml来加载的。Portlet.xml的配置和内容是依照JSR168标准文档。因此,portlet.xml的配置细节将不在此处详细描述。特殊的门户组件配置将在门户组件章节进行讨论

门户配置

Stringbeans描述门户配置是定义在portal.xml文件中(它位于stringbeans web应用的WEB-INF目录中)。该文件的配置涉及到访问控制,日志,门户视图等等。配置信息被标记在名为portal的根标签内。如下所示

            <portal>

                <portal-url-prefix> ... </portal-url-prefix>

                <portal-secure-url-prefix> ... </portal-secure-url-prefix>

                <default-data-source> ... </default-data-source>

                <data-sources> ... </data-sources>

                <local-data-sources>

                    <data-source... />

               </local-data-sources>

                <not-found-portlet>NotFoundPortlet</not-found-portlet>

                <user-info-mapping> ... </user-info-mapping>

                <interceptors>

                   <interceptor> ... </interceptor>

               </interceptors>

                <login-interceptors>

                   <login-interceptor> ... </login-interceptor>

               </login-interceptors>

                <user-config-stores>

                    <user-config-store>... </user-config-store>

               </user-config-stores>

                <user-config-manager> ... </user-config-manager>

                <access-controller> ... </access-controller>

                <themes-dir>themes</themes-dir>

                <default-date-pattern> ... </default-date-pattern>

                <start-date> ...</start-date>

                <send-username-password> ... </send-username-password>

                <remember-me> ... </remember-me>

                <remember-username> ... </remember-username>

                <default-page-width> ... </default-page-width>

                <page-layouts>

                    <layout>... </layout>

               </page-layouts>

                <allow-self-registration/>

                <portal-admin-email/> ... </portal-admin-email>

                <support-secure-connection/>

                <encrypt-password/>

                <wide-portlets> ... </wide-portlets>

                <online-user-table-name> ... </online-user-table-name>

                <session-timeout-interval> ... </session-timeout-interval>

                <default-locale ... />

                <supported-locales>

                    <locale .../>

               </supported-locales>

                <portal-apps>

                   <portal-app> ... </portal-app>

              </portal-apps>

            </portal>

Figure 1

每一个配置片段的所对就的xml子元素将在以下章节进行讨论。不是按照子元素的出现顺序进行描述的。

<portal-url-prefix>

非安全服务链接地址前缀被用于创建门户引用内容。如果支持安全链接,或在安全链接和非安全链接中使用非标端口。你必须设置非安全门户URL前缀或安全门户URL前缀。如果不是这种情况下的,将强烈建议设置门户URL前缀。这样可以避免服务器对每次请求都做URL前缀处理。

 示例

        <portal-url-prefix>

           http://localhost:8080/stringbeans

       </portal-url-prefix>  

<portal-secure-url-prefix>

安全套接字支持,如果使用了非标准端口在非安全或安全URL上,你必须这个标记属性的值。如果不是这种情况下的,将强烈建议设置门户URL前缀。这样可以避免服务器对每次请求都做URL前缀处理。

示例

       <portal-secure-url-prefix>

           https://localhost:8443/stringbeans

       </portal-secure-url-prefix>   

<default-data-source>

标识全部数据源的JNDI名称。该数据源名将被用于当默认组件需要访问数据库时使用。默认数据源必须是data-source列表成员之一。

示例

        <default-data-source>

 java:comp/env/jdbc/stringbeansdb

        </default-data-source>

   

<data-sources>

可用JNDI数据源列表

Specific Tags

Tag

描述

data-source

每个数据源需要以下属性:

label:

标识数据源名称.

name:

全限定JNDI数据源名

示例

       <data-sources>

         <data-source name="java:comp/env/jdbc/stringbeansdb"

                           label="Stringbeans data source" />

         <data-source name="java:comp/env/jdbc/sbtourdb"

                           label="Stringbeans tour data source" />

       </data-sources>

   

<local-data-sources>

每一咱出瑞在<data-source>中的数据源必须在<local-data-sources>标签中配置。你必须正确的配置以下属性。有三个stringbeans默认定义的属性。没有必要对同一数据库配置所有的数据源。

Specific Tags

Tag

描述

Local-data-source

每一个数据源需要配置以下属性:

driver-class-name:

JDBC 驱动类名.

name:

JNDI数据源全限定名

url:

JDBC 连接 URL ${webappRoot} 标识stringbeans web应用环境

user-name:

数据库用户名

password:

数据库密码

示例默认 Hypersonic 数据库 (in process / standalone mode)

       <local-data-sources>

         <data-source name="java:comp/env/jdbc/stringbeansdb"

                           driver-class-name="org.hsqldb.jdbcDriver"

                           url="jdbc:hsqldb:${webappRoot}/WEB-INF/db/SBDB"

                           user-name="sa"

                           password="" />

         <data-source name="java:comp/env/jdbc/sbtourdb"

                            driver-class-name="org.hsqldb.jdbcDriver"

                           url="jdbc:hsqldb:${webappRoot}/WEB-INF/db/SBDB"

                           user-name="sa"

                           password="" />

         <data-source name="java:comp/env/jdbc/inmemorydb"

                           driver-class-name="org.hsqldb.jdbcDriver"

                           url="jdbc:hsqldb:."

                           user-name="sa"

                           password="" />

       </local-data-sources>

   

示例 - MySQL Database

       <local-data-sources>

         <data-source name="java:comp/env/jdbc/stringbeansdb"

                           driver-class-name="org.gjt.mm.mysql.Driver"

                           url="jdbc:mysql://localhost/SBDB"

                            user-name="root"

                           password="" />

         <data-source name="java:comp/env/jdbc/sbtourdb"

                           driver-class-name="org.gjt.mm.mysql.Driver"

                           url="jdbc:mysql://localhost/SBDB"

                            user-name="root"

                           password="" />

         <data-source name="java:comp/env/jdbc/inmemorydb"

                           driver-class-name="org.hsqldb.jdbcDriver"

                           url="jdbc:hsqldb:."

                           user-name="sa"

                           password="" />

       </local-data-sources>

   

示例 - SAPDB Database

    <local-data-sources>

        <data-sourcename="java:comp/env/jdbc/stringbeansdb"

                       driver-class-name="com.sap.dbtech.jdbc.DriverSapDB"

                       url="jdbc:sapdb:SBDB"

                       user-name="sa"

                       password="" />

        <data-sourcename="java:comp/env/jdbc/sbtourdb"

                       driver-class-name="com.sap.dbtech.jdbc.DriverSapDB"

                       url="jdbc:sapdb:SBDB"

                       user-name="sa"

                       password="" />

        <data-sourcename="java:comp/env/jdbc/inmemorydb"

                       driver-class-name="org.hsqldb.jdbcDriver"

                       url="jdbc:hsqldb:."

                       user-name="sa"

                       password="" />

    </local-data-sources>

   

示例 - PostgreSQL Database

    <local-data-sources>

        <data-sourcename="java:comp/env/jdbc/stringbeansdb"

                       driver-class-name="org.postgresql.Driver"

                       url="jdbc:postgresql://localhost/SBDB"

                       user-name="sa"

                       password="" />

        <data-sourcename="java:comp/env/jdbc/sbtourdb"

                       driver-class-name="org.postgresql.Driver"

                       url="jdbc:postgresql://localhost/SBDB"

                        user-name="sa"

                       password="" />

        <data-sourcename="java:comp/env/jdbc/inmemorydb"

                       driver-class-name="org.hsqldb.jdbcDriver"

                       url="jdbc:hsqldb:."

                       user-name="sa"

                        password=""/>

    </local-data-sources>

   

<not-found-portlet>

用户定义的门户组件未找到,将显示该组件(值是该组件的名字)。

注意:

该组件必须在portlet.xml 文件中有定义

<user-info-mapping>

门户组件程序经常要维护用户信息(包括像电话号码,电子邮件,邮箱地址等),像这种信息可以在门户容器内部署一个可不变的视图。该Map可以获取请求属性名通过javax.portlet.PortletRequest.USER_INFO 常量。Stringbeans假定实现这些信息实现并存储在数据库中以用户的ID做为主键

user-info-mapping 标签定义了表与用户信息属性的映射。

具体标签

Tag

描述

sql

必选.提供SQL字符串从数据库中查询用户属性

attributes

必填。通过逗号分隔属性名,匹配用户信息表中的列。Sal查询的列名要与该属性列出来的属性名保持一致。

示例

       <user-info-mapping>

         <sql>SELECT fname, lname, ophone, oemail

                          FROMSB_USERS WHERE userid = ?</sql>

          <attributes>user.name.given,

                                user.name.family,

                                user.business-info.telecom.telephone.number,

                                 user.business-info.online.email

             </attributes>

       </user-info-mapping>

   

<interceptors>

Stringbeans 允许用户定义拦截器栈,它们将会在用户访问门户组件时出发。每一个拦截器被定义为interceptors的子元素。每一个拦截器元素通过子元素标识实现类。Stringbeans 提供了两个实现它们被用于日志组件的访问。

Portlet Hit File Logger Interceptor

Java

com.nabhinc.portal.interceptor.PortletHitFileLogger

描述

日志拦截器将记录访问/触发事件到文件,文件以.log为后缀名。默认保存在<stringbeans-webapp-root>/WEB-INF/logs/portlet目录

每天建立一个新文件。每行上的一条记录以逗号分隔。默认的日志参数是和数据库日志一样。

logger: timestamp, event-type, portlet-name, client or user-id, client's IP or remote-address, client's host-name or remote-host respectively. 可用的数据类型有:  0 ==> 成功访问successful access 1 ==> 访问被拒,因为组件需要安全访问 2 ==> 权限被拒 3 ==> 组件不可用 4 ==> 内部访问检查错误 5 ==> 组件异常 6 ==> 系统异常

具体标签

Tag

描述

log-dir

指定Stringbeans相对路径. 默认是 WEB-INF/logs/portlet. 可选

logged-params

用逗号分隔的日志参数,提供的参数用timestamp,event-type, portlet-name, user-id, remote-address and remote-host。至少需要添加一个参数。如果示识该标记,则默认的值会在上面的注释中有所说明。可选

示例

           <interceptor >

             <name>Portlet Access FileLogger</name>

             <class>com.nabhinc.portal.interceptor.PortletHitFileLogger</class>

            <log-dir>WEB-INF/logs/portlet</log-dir>

             <logged-params>

               timestamp,portlet-name,user-id,remote-host,remote-address

            </logged-params>

            </interceptor>

       

Portlet Hit DB Logger Interceptor

Java

com.nabhinc.portal.interceptor.PortletHitDBLogger

描述

拦截器将访问/触发的日志信息保存至数据库中。与PortletHitFileLogger 仅有小小的不一样就是存储介质不一样。

 默认的日志参数和文件日志一样: timestamp, event-type, portlet-name, client or user-id, client's IP or remote-address, client's host-name or remote-host respectively. The available event typesare:  0 ==> 成功访问successful access 1 ==> 访问被拒,因为组件需要安全访问 2 ==> 权限被拒 3 ==> 组件不可用 4 ==> 内部访问检查错误 5 ==> 组件异常 6 ==> 系统异常

Specific Tags

Tag

描述

data-source

数据库的JNDI全限定名。如果没写该标记则使用默认数据库名。

可选.

sql

如果该元素没写,将记录默认的日志参数到SB_ACCESS_LOGS表中。通过访问默认的数据源。注意列的顺序要和日志参数的顺序一致。可选

logged-params

用逗号分隔的日志参数,提供的参数用timestamp,event-type, portlet-name, user-id, remote-address and remote-host。至少需要添加一个参数。如果示识该标记,则默认的值会在上面的注释中有所说明。可选

示例

           <interceptor >

             <name>Portlet Access DatabaseLogger</name>

            <class>com.nabhinc.portal.interceptor.PortletHitDBLogger</class>

             <data-source>java:comp/env/jdbc/stringbeansdb</data-source>

             <sql>INSERT INTO SB_ACCESS_LOGS (

                        acctime,pname, userid) VALUES(?,?,?)</sql>

             <logged-params>timestamp,portlet-name,user-id</logged-params>

            </interceptor>

       

<login-interceptors>

每一个登录拦截器被做为子元素标识在<login-interceptors>标签中。登录拦截器决定怎样记录用户登录登出事件日志。日志类通过子标签标识。当前版本提供两种日志实现类。:

Login File Logger Interceptor

Java

com.nabhinc.portal.interceptor.LoginFileLogger

描述

拦截器记录日志到文件,以userac前缀,以.log做为扩展名。默认保存路径是 <stringbeans-webapp-root>/WEB-INF/logs/user目录。每日新建一个日志文件。每行的日志信息以逗号分隔。默认参数和数据库日志一致:timestamp, event-type, session-id, client or user-id, client's IP or remote-address, client's host-name or remote-host。可用日志类型

 

0 : 登录, 1 : 会话过期, 2 : 明确登出.

 

详细标签

Tag

描述

log-dir

指定日志存放路径,默认为 WEB-INF/logs/user.

logged-params

逗号分隔,支持的参数有: timestamp,event-type, session-id, user-id, remote-address and remote-host。如果出现该标签至少有一个参数被使用

示例

           <login-interceptor>

             <name>Login FileLogger</name>

             <class>com.nabhinc.portal.interceptor.LoginFileLogger</class>

            <log-dir>WEB-INF/logs/user</log-dir>

            <logged-params>timestamp,session-id,user-id,

                               remote-host,remote-address</logged-params>

            </login-interceptor>

       

Login DB Logger Interceptor

Java

com.nabhinc.portal.interceptor.LoginDBLogger

描述

登录登出事件将保存到数据库,与andLoginFileLogger  唯一不同的地方就是存储的媒介不一样。默认使用参数: timestamp, event-type, session-id, client or user-id, client's IP or remote-address, client's host-name or remote-host. 可用的事件日志类型: 0 : 登录, 1 : 会话过期, 2 : 明确登出.

 

Specific Tags

Tag

描述

data-source

数据库的JNDI全限定名。如果没写该标记则使用默认数据库名。

可选..

sql

如果该元素没写,将记录默认的日志参数到SB_LOGIN_LOGS表中。通过访问默认的数据源。注意列的顺序要和日志参数的顺序一致。

 

logged-params

用逗号分隔的日志参数,提供的参数用timestamp,event-type, portlet-name, user-id, remote-address and remote-host。至少需要添加一个参数。如果示识该标记,则默认的值会在上面的注释中有所说明。

.

示例

           <login-interceptor>

             <name>Login DatabaseLogger</name>

            <class>com.nabhinc.portal.interceptor.LoginDBLogger</class>

             <sql>INSERT INTO SB_LOGIN_LOGS (

                                   acctime,userid,session-id) VALUES (?,?,?)</sql>

             <logged-params>timestamp,user-id,session-id</logged-params>

           </login-interceptor>

       

<user-config-stores>

每个用户都可以定制自己的布局及自己的配置存储,根据user-config-manager标签来定义存储方式。存储的名称定义必须唯一。当前版本提供了两种用户配置存储实现类:

用户配置存储于文件

Java

com.nabhinc.portal.uconfig.FileUserConfigStore

描述

用户配置保存到文件.为每个用户创建唯一的文件名,以unsername.xml形式命名并保存在配置文件夹中.默认的文件配置将会被存储到 <stringbeans-webapp-root>/WEB-INF/users目录。使用config-dir标签可以定义到不同的目录下 示例, 用户的user-id: test, 则test.xml 将在stringbeans 上下文中标识在config-dir中

标签

Tag

描述

name

用户配置存储的名称(唯一)必填

config-dir

批定stringbeans上下文路径,文件将存储于此. 默认是 <stringbeans-webapp-root>/WEB-INF/users。可选

示例

           <user-config-store>

             <name>file</name>

             <class>com.nabhinc.portal.uconfig.FileUserConfigStore</class>

           </user-config-store>

       

用户配置存于数据库

Java

com.nabhinc.portal.interceptor.DBUserConfigStore

描述

标记说明

Tag

描述

name

用户配置名称,名称必须是唯一的。必选

data-source

Servlet容器配置信息中定义的JNDI全限定名。如没写该标记,将使用默认的数据源名称。可选

insert-sql

插入用户配置信息到数据库表中。默认为 "INSERT INTO SB_USER_CONFIGS (name, userconfig) VALUES (?,?)"

update-sql

更新用户配置信息命令。默认为"UPDATE SB_USER_CONFIGS SET userconfig = ? WHERE name = ?"

check-sql

检查用户配置信息的SQL命令,默认为"SELECT name FROM SB_USER_CONFIGS WHERE name = ?"

restore-sql

恢复用户配置信息命令,默认为"SELECT userconfig FROM SB_USER_CONFIGS WHERE name = ?"

count-sql

计算用户配置数量,默认为"SELECT COUNT(*) FROM SB_USER_CONFIGS"

user-config-dir

标识stringbeans上下文环境的相对路径。默认为WEB-INF/users.

示例

           <user-config-store>

             <name>DBStore</name>

            <class>com.nabhinc.portal.uconfig.DBUserConfigStore</class>

           </user-config-store>

       

<user-config-manager>

该元素标识配置管理实现类和类的依赖关系。该配置管理类的职责是为每个用户生成视图。类的名字是使用子元素标识的。当前提供的配置管理实现如下:

Simple User Configuration Manager

Java

com.nabhinc.portal.uconfig.SimpleUserConfigManager

描述

简单用户配置管理器,存储用户到特殊的存储名称标记。默认模板标为新用户标识了初始布局。

注意:

o    The <default template name >.xml文件必须存在,并在用户创建之前进行配置。以下提供了了一个模板default-template.xml

标记

Tag

描述

store-name

标识存储名称。该名称必须是在user-config-stores中定义的。必选

default-template

标识默认模板名称,如果没有使用。默认为名称为login-template.注意:<default template name>.xml必须存在并配置。

示例

           <user-config-manager >

            <class>com.nabhinc.portal.uconfig.SimpleUserConfigManager</class>

             <store-name>file</store-name>

            <default-template>default-template</default-template>

           </user-config-manager>

       

示例  default.xml

          <user-config>

           <lf-theme>bee</lf-theme>

           <refresh-seconds>-1</refresh-seconds>

           <default-page-index>0</default-page-index>

           <portal-layout>

             <tab label="Home"layout-class="com.nabhinc.portal.core.GridLayout">

               <layout>

                 <columnwidth="230">

                  <portlet-info name="TestPortlet" show-title="true"

                                                                      border-width="1">

                    <portlet-preferences>

                    </portlet-preferences>

                  </portlet-info>

                 </column>

                 <columnwidth="470">

                  <portlet-info name="TestPortlet" show-title="true"

                                                                     border-width="1" >

                    <portlet-preferences>

                    </portlet-preferences>

                  </portlet-info>

                 </column>

               </layout>

             </tab>

           </portal-layout>

          </user-config>

       

模板用户配置管理

Java

com.nabhinc.portal.uconfig.TemplateUserConfigManager

描述

所有用户将有一样的布局配置,只要定义模板文件,通过在<config-dir>目录中添加模板文件。

 详细

Tag

描述

store-name

标识存储的文件名。文件名必须在user-config-stores中定义。必埴

template-name

标识模板文件名 (模板必须存在). 必填.

示例

           <user-config-manager>

            <class>com.nabhinc.portal.uconfig.TemplateUserConfigManager</class>

             <store-name>file</store-name>

            <template-name>no-user-template.xml</template-name>

           </user-config-manager>

       

基于规则的用户配置管理

Java

com.nabhinc.portal.uconfig.RuleBasedUserConfigManager

描述

该类提供了基于不同用户,角色或它们之前的关系生成不同布局和视图的能力。该配置依照一条或多条规则元素。每个规则是通过pre-condition和config-creator元素。基于这些规则类的使用。标记参数可能需要<pre-condition>标签。详情请参考预定义规则部分。

 

Config-creator元素标识用户配置管理被用来管理的用户。详情请参考用户配置管理部分

RuleBasedUserConfigManager 通过使用UserConfigManager查找第一条规则来生成门户视图。该规则满足预定义条件。

详细标记

Tag

描述

store-name

标识使用的存储名称。这个名称必须是在user-config-stores中定义的 必填

rules

根元素下定义的规则元素。至少要有一个规则说明。

rule

每个规则定义的pre-condition和configcreator

pre-condition

定义的规则类被使用,附加的参数将被在pre-condition类中使用

config-creator

使用pre-condition管理用户,角色,及其它们之前的关系定义的用户配置管理

示例

        <user-config-manager >

            <class>

               com.nabhinc.portal.uconfig.RuleBasedUserConfigManager

            </class>

           <store-name>file</store-name>

            <rules>

                <rule>

                   <pre-condition>

                       <class>

                            com.nabhinc.rules.PositiveRolePrecondition

                       </class>

                       <roles>sb-template</roles>

                   </pre-condition>

                   <user-config-manager>

                       <class>

                           com.nabhinc.portal.uconfig.SimpleUserConfigManager

                       </class>

                       <store-name>file</store-name>

                       <default-template>default-template</default-template>

                    </user-config-manager>

                </rule>

                <rule>

                   <pre-condition>

                       <class>com.nabhinc.rules.UserPrecondition</class>

                       <users>sbtour</users>

                    </pre-condition>

                   <user-config-manager>

                       <class>

                           com.nabhinc.portal.uconfig.TemplateUserConfigManager

                       </class>

                       <template-name>sbtour-template</template-name>

                       <store-name>file</store-name>

                   </user-config-manager>

                </rule>

            </rules>

        </user-config-manager>

       

<access-controller>

通过该元素可以用来控制用户授权或禁止访问门户资源。这种访问授权可以不使用任何过滤器和pre-condition规则或通过指定条件。在之前的版本中提供了两个实现将在下面进行描述:

Grant All Access Controller

Java

com.nabhinc.portal.ac.GrantAllAccessController

描述

授权可以访问所有资源

标记

示例

           <access-controller >

             <name>Grant All AccessController</name>

            <class>com.nabhinc.portal.ac.GrantAllAccessController</class>

           </access-controller>

       

基于规则的访问控制器

Java

com.nabhinc.portal.ac.RuleBasedAccessController

描述

基于pre-condition规则的特殊组件的强制访问控制

Enforces the access control to the specified portlets based on 。控制个别的访问行为(视图,编辑等)。Pre-condition必须满足对受保护的门户组件的授权和拒绝访问。如果没指定相应的行为,pre-condition将在指定的组件上执行所有的行为。

Specific Tags

Tag

描述

ac-entry

根元素,用于指定portlets,pre-condition, 和actions的根元素。

portlets

指出需要访问的portlet或需要保护的门户组件。如果有多个组件可以使用逗号进行分隔。

pre-condition

预定义条件必须适用于访问被保护组件。参考预定义规则需要指明可用类和元素参数

actions

指明行为。例如 视图、编辑等访问控制需要基于指明的预置的条件规则。如果没有指明该元素。将依照预置条件规则对指定的组件执行所有的行为。

示例

           <access-controller >

             <name>Rule Based AccessController</name>

            <class>com.nabhinc.portal.ac.RuleBasedAccessController</class>

             <ac-entry>

               <portlets>JVMInfo,Portlet Access DB Logs</portlets>

               <pre-condition>

                <class>com.nabhinc.rules.PositiveRolePrecondition</class>

                <roles>sb-admin</roles>

               </pre-condition>

             </ac-entry>

           </access-controller>

       

<themes-dir>

标识主题目录。默认的主题目录是themes. 主题名必须定义在这个主题目录中。

<default-date-pattern>

标识默认使用的日期样式在start-date标签中。这个样式必须依据java的SimpleDateFormat类。如果没指定,默认为月/日/年

<start-date>

软件的创建日期,如果没有指定该标记,默认为程序第一次运行的时间。日期的格式必须依照default-date-pattern指明的类型

<send-username-password>

当用户请求重置用户密码可以使用该标记。如没有指明这个标记,密码将被发到用户邮箱中。

<remember-me>

 

如果标识这个标记,remember me复选框将会出现在登录组件上。Remember Me选项可以提供自动登录特性。直到用户点击退出或已经超过最大超时间。

<remember-username>

如果标识这个标记,remember username复选框将会出现在登录组件页面上。Remember username 提供了预填写用户名的特性

<default-page-width>

标识默认页面宽度,它将会被应用到所有页面。在page-layouts配置中设置将会覆盖该值。宽度可以是像素或百分比(如果使用百分比需要写百分号)。

例: <default-page-width>100%<default-page-width>

<page-layouts>

在该元素中可以指定一个或多个布局。每一个布局定义了类型,名称,标签,列宽,页面宽度(可选)stringbeans提供了三个基本类型的布局:单独(整页面),菜单(左边有导航栏),列类型布局。基于这三种基本类型,stringbeans定义了5种页面布局(你可以改变列宽或添加更多的布局。这些布局的名称必须是唯一的)

标记

Tag

描述

layout

定义每一个布局都要以layout开始,每一个布局都要有name,label,type,column-width,和page-width。在layout中指明页面的宽度将覆盖默认的页面宽度

label

选中时显示的宽度

name

布局名称,必须是唯一的。必选项

type

布局类型,支持的布局类型有:

  • column: 表格或多列布局。每一列的宽度取决于列的数量menu: 左边带还导航的页面,右面是主页面的布局
  • single: 一个页面中只包含一个组件。

column-widths

指定列宽,使用百分比(要指定%号)或像素。如果要指明多列宽度使用逗号隔开。

  • "column" 类型布局:列数决定列宽,多列宽度指定要用逗号。
  • "menu" 类型布局: 一直是两个宽度需要指定
  • "single" 类型布局: 指定列宽没有效果

page-width

可选项,指定页面的宽度。如果没有指定将使用default-page-width设置的宽度。

示例

    <page-layouts>

      <layout>

       <name>grid1</name>

           <label>Two Columns(W-N)</label>

          <column-widths>100%,165</column-widths>

          <type>column</type>

          <page-width>100%</page-width>

        </layout>

      <layout>

        <name>menu</name>

        <label>MenuLayout</label>

       <column-widths>165,100%</column-widths>

       <type>menu</type>

       <page-width>700</page-width>

      </layout>

      <layout>

       <name>single-portlet</name>

        <label>Single Portlet</label>

       <column-widths>100%</column-widths>

       <type>single</type>

       <page-width>700</page-width>

      </layout>

 

    </page-layouts>

   

<allow-self-registration />

如果标识这个空标记,则用户可以在登录组件上提供用户注册的链接。自注册处理需要要有效的电子邮箱验证来成功注册。新用户将会在邮箱中收到登录密码。

注意:

o   发送邮件需要 SMTP支持。如果本地没有SMTP服务。你必须在java系统属性里设置SMTP主机值

例如:mail.smtp.host = mail server IP 或主机名。另外你的邮件服务器必须允许stringbeans 发送邮件

<portal-admin-email>

门户管理邮箱用来发送确认信息邮件,当用户通过登录页面上的注册链接进行注册时。默认值是stringbeans.admin@nabhinc.com

 

<support-secure-connection />

标识该标记。安全连接图标将显示在图标条上。注意,要提供SSL,还需要配置web和应用服务器。详情参见SSL 安装

<encrypt-password />

如果该标记有效,密码将在保存到数据库之前做加密处理。密码加密使用的是MD5算法。如果你禁止或启用该元素,你必须重置数据库的用户密码。

<wide-portlets>

标识用逗号分隔的组件。这些组件将不在窄列中显示

示例

       <wide-portlets>JVVInfo, OnlineUsers,UserAdmin </wide-portlets>

   

<online-user-table-name>

维护在线用户列表在内存中。默认的表名为IM_ACTIVE_SESSIONS

示例

       <online-user-table-name>IM_ACTIVE_SESSIONS</online-user-table-name>

   

<session-timeout-interval>

请求无效的间隔时间,以分钟为单位,超过该时间隔的客户端请求,用户会话将被视为无效。默认值是0,它说明应用程序将使用默认的超时时间间隔。负值表示session永远不过期。

示例

       <session-timeout-interval>0</session-timeout-interval>

   

<default-locale>

标识默认的语言。

Lang属性的值必须是ISO639中定义的有效的双字符小写字串。该代码代表语言的名称

Country属性必须是在ISO3166中定义的双字符大写字串的国家代码

示例

       <default-locale lang="en" country="US" />

   

<supported-locales>

列出你要支持的语言类型。每一种语言被定义在子元素local中并包含属性label,lang和country。

指明标记

Tag

描述

locale

通过属性说明指定的语言:

label

描述语言的字符串.

lang

定义在ISO639中的双字符小写代码,该代码表示语言的名称。

counrty

定义在ISO3166中有效的双字符大写国家代码

示例

       <supported-locales>

         <locale label="German" lang="de" />

         <locale label="US English" lang="en"country="US" />

       </supported-locales>

   

<portal-apps>

Stringbeans提供了门户应用(portal applications)支持,它是通过上下文在合适的组件窗口渲染。例:一个项目管理程序将被展现在准备好的页面上用来说明项目。”portal-apps”包含一系列的”portal-app”字元素,每一个元素对应一个应用程序。每个子元素必须至少包括两个子元素:name和user-config-manager。Name指明应用程序名称。User-config-manager元素管理生成视图的类。另外portal-app可能还会有id-param,name-param,display-name-as-tite和title-prefix子元素。这些将在为应用程序上下文的请求参数。在为项目管理程序,它也许会有标识项目的project_id和project_name用来区分项目和项目名称。如果使用display-name-as-title元素。则name-param请求参数是显示页面标题。如果title-prefix元素被标识,标题被预指定为为元素体内文本的内容。

 

示例

        <portal-app>

         <name>edit_profile</name>

         <user-config-manager>

            <class>

               com.nabhinc.portal.uconfig.TemplateUserConfigManager

            </class>

           <config-dir>WEB-INF/users</config-dir>

            <template-name>eprofile</template-name>

         </user-config-manager>

        </portal-app>

   

规则

规则定义的条件将满足请求的请允许和禁止。在当前版本中提供了13条预定义条件的实现。

“与”处理

Java

com.nabhinc.rules.AndPrecondition

描述

“与”预定义规则,必须满足所有指明的规则

标记

示例

           <rule>

             <pre-condition>

              <class>com.nabhinc.rules.AndPrecondition</class>

                <pre-condition>

              <class>com.nabhinc.rules.PositiveRolePrecondition</class>

              <roles>sb-admin</roles>

                </pre-condition>

                <pre-condition>

              <class>com.nabhinc.rules.PositiveRemoteHostPrecondition</class>

              <addresses>localhost</addresses>

                </pre-condition>

             </pre-condition>

           </rule>

       

比较处理

Java

com.nabhinc.rules.ComparisonPrecondition

描述

该预置条件会将数据库查询结果(例如结果行数)与指定的结果做operator指定的比较

Specific Tags

Tag

描述

data-source

Servlet容器中指定的JNDI全限定名.必填.

sql

SQL查询用来获取结果,从数据的查询结果数。

operator

与查询结果进行比较的比较操作符: less-than, greater-than, equal, not-equal, greater-than-or-equal, less-than-or-equal.

compare-to

与查询结果比较的数

示例

           <rule>

             <pre-condition>

              <data-source>java:comp/env/jdbc/stringbeansdb</data-source>

               <sql>SELECT COUNT(*)FROM SB_STUDENTS WHERE GRADE>7</sql>

              <operator>equal</operator>

              <compare-to>100</compare-to>

             </pre-condition>

           </rule>

       

禁止远程地址

Java

com.nabhinc.rules.NegativeRemoteAddressPrecondition

描述

该条件满足当请求的IP不是标记指明的IP地址

标记

Tag

描述

addresses

客户端IP将被拒绝访问。如查有多个IP地址需要标识,使用逗事情分隔

示例

           <rule>

             <pre-condition>

              <class>com.nabhinc.rules.NegativeRemoteAddressPrecondition</class>

              <addresses>67.88.88.103, 192.168.254.253</addresses>

             </pre-condition>

           </rule>

       

禁止远程主机

Java

com.nabhinc.rules.NegativeRemoteHostPrecondition

描述

该条件满足当请求主名不在该标识中可以访问

标记

Tag

描述

addresses

标识的客户主机名将被拒绝访问。多于一个的主机名,将用逗号隔开。

示例

            <rule>

             <pre-condition>

              <class>com.nabhinc.rules.NegativeRemoteHostPrecondition</class>

              <addresses>spamhost.com, justhost.com</addresses>

             </pre-condition>

           </rule>

       

禁止角色

Java

com.nabhinc.rules.NegativeRolePrecondition

描述

列表中列出来的角色是不满足预置条件规则的。如果一个或多个用户需要排除,标记用户这些用户到users元素中

元素

Tag

描述

roles

角色将被拒绝访问。使用逗号可以分隔多个角色。

users

排除指定角色下的用户,使用逗号分隔多个用户

示例

            <rule>

             <pre-condition>

              <class>com.nabhinc.rules.NegativeRolePrecondition</class>

              <roles>sb-guest</roles>

              <users>guest</users>

             </pre-condition>

           </rule>

       

“非”运算

Java

com.nabhinc.rules.NotPrecondition

描述

不包含条件运算规则

标签

示例

        <rule>

         <pre-condition>

           <class>com.nabhinc.rules.NotPrecondition</class>

         </pre-condition>

        </rule>

       

“或”运算

Java

com.nabhinc.rules.OrPrecondition

描述

或运算.使用该条件,仅需要一个(或多个)满足条件,则可以通过验证。

标记

示例

        <rule>

            <pre-condition>

                <class>com.nabhinc.rules.OrPrecondition</class>

               <pre-condition>

                   <class>com.nabhinc.rules.PositiveRolePrecondition</class>

                   <roles>sb-admin</roles>

               </pre-condition>

                <pre-condition>

                   <class>com.nabhinc.rules.UserPrecondition</class>

                   <users>foo</users>

               </pre-condition>

            </pre-condition>

        </rule>

       

允许远程地址

Java

com.nabhinc.rules.PositiveRemoteAddressPrecondition

描述

 满足条件是当请求的地址在在该标记中标识

标签

Tag

描述

addresses

满足条件的地址,多于一个的用逗号隔开。

示例

        <rule>

            <pre-condition>

                <class>com.nabhinc.rules.PositiveRemoteAddressPrecondition</class>

               <addresses>127.0.0.1, 192.168.0.0</addresses>

            </pre-condition>

        </rule>

       

满足条件的远程主机

Java

com.nabhinc.rules.PositiveRemoteHostPrecondition

描述

请求的主机名在列表中标识,则满足条件。

.

标记

Tag

描述

addresses

满足条件的主机名.

示例

        <rule>

            <pre-condition>

               <class>com.nabhinc.rules.PositiveRemoteHostPrecondition</class>

                <addresses>localhost,anyhost.com</addresses>

            </pre-condition>

        </rule>

       

允许用户条件

Java

com.nabhinc.rules.PositiveRolePrecondition

条件

当请求用户来自标识的角色则满足条件。然而,如果出现users元素 ,则意味着没有包含进来的用户将不满足条件。

标记

Tag

描述

roles

标识角色,多个角色名要使用逗号分隔

users

标识满足条件的指定角色下的用户名,多用户名用逗号隔开。

示例

        <rule>

            <pre-condition>

               <class>com.nabhinc.rules.PositiveRolePrecondition</class>

               <roles>sb-user</roles>

               <users>sbtour</users>

            </pre-condition>

        </rule>

       

关系运算

Java

com.nabhinc.rules.RelationPrecondition

描述

标记

Tag

描述

data-source

Servlet容器下配置的JNDI全限定名。如果该元素没指定则使用默认数据源名。

sql

查询SQL语句从用户相关表中测试用户是否存在。

示例

        <rule>

            <pre-condition>

                <class>com.nabhinc.rules.RelationPrecondition</class>

               <data-source>java:comp/env/jdbc/stringbeansdb</data-source>

                <sql>

                    SELECT * FROMSB_PROJECT_USERS WHERE projectid=1 AND userid=?

                </sql>

            </pre-condition>

        </rule>

       

True Precondition

Java

com.nabhinc.rules.TruePrecondition

描述

 

预置条件将满足所有的请求。通常被用在最后一个条件。类似于 else

标签

示例

        <rule>

            <pre-condition>

               <class>com.nabhinc.rules.TruePrecondition</class>

            </pre-condition>

        </rule>

       

用户条件

Java

com.nabhinc.rules.UserPrecondition

描述

标识的用户将满足条件,除非标记空的negative标签

标记

Tag

描述

users

默认情况,标识的用户将满足条件,除非标识空的negative元素

多个用户用逗号分隔。

negative

标记空标签 negative 预示着不允许。标识的用户将不满足条件。

示例

        <rule>

            <pre-condition>

               <class>com.nabhinc.rules.UserPrecondition</class>

               <users>sbtour</users>

                <negative />

            </pre-condition>

        </rule>

       

门户组件

门户组件是用来生成关于指定主题或功能内容的HTML或WML对象。例如,在某些话题组件中生成一个新闻头条组件,或者在呈现报表数据组件中显示图表等。当前Stringbeans默认的组件类型有 ChartFileJSPJVM Info,ReportRSSTable and XSL portlets。将来这些组件可能会分发到不同的版本中。此外,MVCPorlet框架已经包含在2.1版本中

 

 

Chart Portlet

Java

com.nabhinc.portlet.chart.ChartPortlet

描述

以多种图表来显示报表数据,包含饼图,条形图,栈图,线图,烛柱图等。当前的图表组件支持的数据可以来自于数据库(JDBC)或用户指定的 xml文件。

组件标签

初始化参数

描述

dataSource

Servlet容器下配置的JNDI全限定名。如果该元素没指定则使用默认数据源名。

dataSourceSQL

该元素设置需要数据源类JDBC类型的数据组件支持。使用分组或排序的查询命令

xmlDocRelativePath

该元素需要以xml类型做为数据源。 标识xml 文件的相对路径(在stringbeans根路径上下文内),路径是以”/”开始。

dataSourceClass

使用的图形数据组件类。它依赖于数据源和图表类型,当前支持的数据组件有JDBCCategoryDataset / XMLCategoryDataset:

这两种数据源支持以下图类型line, horizontal-bar, vertical-bar, stacked-horizontal-bar and stacked-vertical-bar

JDBCHighLowDataset:

烛柱图类型.

JDBCPieDataset / XMLPieDataset:

JDBC源和XML源用来支持 pie and pie-3d chart 类型。

helpPage

帮助路径.

chartType

支持的图类型: line, pie, horizontal-bar, horizontal-bar-3d, scatter, pie3d, stacked-horizontal-bar, stacked-vertical-bar, stacked-vertical-bar-3d, vertical-bar, vertical-bar-3d, and candlestick.

chartTitle

图标题

xAxisTitle

图表的x轴别名

yAxisTitle

图表的y轴别名

chartAspectRatio

图表的宽高比,默认是1

showLegend

图例名

chartColors

逗号分隔的图表颜色名称,颜色名称是在java.awt.Color中定义的静态常量或RGB十六进制值要以”#”开头

chart-bg

图表背景颜色名称,该名称是在java.awt.Color中定义的静态常量

portletWidthAttribute

这个属性用来保存组件宽度,默认是com.nabhinc.portal.portlet_width

normalChartWidth

标识图表的正常宽度。默认是200

normalChartHeight

标识图表的正常高度。默认是200

maximizedChartWidth

标识图表的最大宽度。默认是700

maximizedChartHeight

标识图表的最大高度。默认是700

borderColor

边框颜色。该颜色名称是在java.awt.Color中定义的静态常量

imageType

图形类型。支持:jpeg,JPG,和PNG JPG

bgImageURL

背景图链接

bgImageFile

背景图文件名,如果bgImageURL 中没指文件名.

bgImagePath

背景图路径,如果bgImageURL 没有指定.

bgImageAlpha

背景图透明度

bgAlpha

标识背景色透明度

fgAlpha

标识前景色透明度.

hideLegend

该空标记指示将不显示图例

pieChartShape

标识饼图的类型形状类型 circular和oval默认是圆。

pieLabelType

 标识饼图标签类型提供的标签类型有:percent, name, value, name-value, name-percent, value-percent or none

pieDepthFactor

标识饼图的pie or pie-3d图类型,

Specific to  chart type. Specifies the

pieGap

标识饼图之间的缝隙

示例

        <portlet>

            <description>StudentDistribution in Pie 3D chart</description>

           <portlet-name>Student Distribution</portlet-name>

           <portlet-class>com.nabhinc.portlet.chart.ChartPortlet</portlet-class>

            <init-param>

               <name>helpPage</name>

               <value>/portlets/chart/chart_help.jsp</value>

            </init-param>

            <init-param>

               <name>dataSource</name>

               <value>jdbc/sbtourdb</value>

            </init-param>

            <init-param>

                <name>dataSourceSQL</name>

                <value>

               SELECT grade,COUNT(*) FROM STUDENT GROUP BY grade ORDER BY grade>

                </value>

            </init-param>

            <init-param>

               <name>dataSourceClass</name>

               <value>com.nabhinc.portlet.chart.JDBCPieDataset</value>

            </init-param>

            <init-param>

               <name>chartTitle</name>

                <value>StudentDistribution</value>

            </init-param>

            <init-param>

               <name>chartType</name>

               <value>pie3d</value>

            </init-param>

            <init-param>

               <name>chartAspectRatio</name>

               <value>1</value>

            </init-param>

            <init-param>

               <name>pieLabelType</name>

               <value>name</value>

            </init-param>

            <init-param>

               <name>chartColors</name>

               <value>#00ff00, #ff0000, #0000ff</value>

            </init-param>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

               <portlet-mode>EDIT</portlet-mode>

            </supports>

            <portlet-info>

                <title>JDBC Pie 3D ChartDemo</title>

               <keywords>Charts, Samples</keywords>

            </portlet-info>

        </portlet>

       

File Portlet

Java

com.nabhinc.portlet.file.FilePortlet

描述

文件组件提供了一个文件的服务内容。该文件必须能能过配置上下文在本地或远程定位到。相对路径必须以“/”开始

该组件会缓存文件内容在服务启动时,在发送内容之前,它必须检查该文件是否被修改较新于缓存文件。如果文件被修改,那么缓存将被刷新(重新加载文件)。当支持XHTML-MP或(和)WML支持时可以使用用效的XHTML-MP或(和)WML文件

组件标签

初始化参数

描述

filePath

标识文件在stringbeans上下文中的加载路径。使用相对路径将以”/”开始 例如 /portlets/file/search.html.

htmlFilePath

标识文件加载的相对路径

路径以 "/"开始, 例如 /portlets/file/search.html.

该参数将被处理,即使也标识的filePath参数

无论是filePath 或 htmlFilePath 都是必填的

xhtmlFilePath

标识加载XHTML文档的相对路径。以“/”开始

 例如 /portlets/file/search.xhtml.

wmlFilePath

标识加载WML文档的相对路径。路径以“/”开始

 

例如 /portlets/file/search.html.该参数不建议使用,设置htmlFilePath会更好一些.

helpPage

指定帮助文件路径路径以“/”开始

示例

        <portlet>

            <description>An 示例 of File Portlet</description>

           <portlet-name>WelcomeMessage</portlet-name>

           <portlet-class>com.nabhinc.portlet.file.FilePortlet</portlet-class>

            <init-param>

               <name>filePath</name>

               <value>/portlets/file/samples/welcome.html</value>

            </init-param>

            <init-param>

               <name>wmlFilePath</name>

               <value>/portlets/file/samples/welcome.wml</value>

            </init-param>

            <init-param>

               <name>helpPage</name>

                <value>/portlets/file/file_help.jsp</value>

            </init-param>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

            </supports>

            <supports>

                <mime-type>text/vnd.wap.wml</mime-type>

            </supports>

            <portlet-info>

               <title>Welcome</title>

               <keywords>Welcome, File</keywords>

            </portlet-info>

        </portlet>

       

Inline Portlet

Java

com.nabhinc.portlet.inline.InlinePortlet

描述

简单的门户测试组件

组件标签

preference

描述

content

标识视图内容

help

标识帮助内容

示例

                <portlet>

                   <description>Inline Portlet, a test portlet.</description>

                   <portlet-name>TestPortlet</portlet-name>

                   <portlet-class>com.nabhinc.portlet.inline.InlinePortlet</portlet-class>

                   <expiration-cache>0</expiration-cache>

                    <supports>

                       <mime-type>text/html</mime-type>

                       <portlet-mode>HELPv/portlet-mode>

                   </supports>

                   <portlet-info>

                       <title>Test Portlet</title>

                       <keywords>Samples</keywords>

                   </portlet-info>

                   <portlet-preferences>

                       <preference>

                           <name>content</name>

                            <value>Thisis a test portlet.</value>

                       </preference>

                       <preference>

                           <name>help</name>

                           <value>A simple portlet used for illustrating authoringportlets.</value>

                       </preference>

                   </portlet-preferences>

                </portlet>

       

JSP Portlet

Java

com.nabhinc.portlet.base.BasePortlet

描述

该组件将会请求一个jsp文件。在处理请求之前,它会试图配置属性值以备jsp生成动态输出时的请求对象使用。其它组件可以在另一个地方重用该jsp组件可能会添加不同的参数。以下的参数是所有jsp组件所技术的

组件标签

init-param

描述

contentPage

内容页面的相对路径.路径以"/"开始.

editPage

编辑页面的路径 路径以“/”开始.

helpPage

帮助文件路径 路径以“/”开始.

示例

        <portlet>

            <description>Showtime portlet.</description>

            <portlet-name>ShowTime</portlet-name>

           <portlet-class>com.nabhinc.portlet.base.BasePortlet</portlet-class>

           <expiration-cache>0</expiration-cache>

            <init-param>

                <name>contentPage</name>

               <value>/portlets/jsp/content.jsp</value>

            </init-param>

            <init-param>

               <name>editPage</name>

               <value>/portlets/jsp/edit.jsp</value>

            </init-param>

            <init-param>

               <name>helpPage</name>

               <value>/portlets/jsp/help.jsp</value>

            </init-param>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

               <portlet-mode>EDIT</portlet-mode>

            </supports>

            <supports>

               <mime-type>text/wml</mime-type>

               <portlet-mode>HELP</portlet-mode>

               <portlet-mode>EDIT</portlet-mode>

            </supports>

            <portlet-info>

                <title>ShowTime Portlet</title>

               <keywords>JSP</keywords>

            </portlet-info>

           <portlet-preferences>

           </portlet-preferences>

        </portlet>

       

Report Portlet

Java

com.nabhinc.portlet.report.ReportPortlet

描述

组件将生成数据库报表。报表组件可能获取数据是基于数据源和sql语句配置。该数据可以组织成任意数量的递归分组。数据将将展现在报表的顶部,底部和列中通过设置java表达式。另外数据的分页是必要的。

组件标签

init-param

描述

dataSource

Servlet容器下配置的JNDI全限定名。如果该元素没指定则使用默认数据源名。

listSQL

用于查询获取的数据

countSQL

查询命令计算的总数据量

sectionName

报表的节/分组

sectionHeader

报表分组头

sectionFooter

报表分组尾

sectionExpr

分组表达式

headers

逗号分隔的列名

columns

逗号分隔的对应查询的列名。要与headers的数量匹配

columnExpr

列表达式

reportHeader

报表头.

reportFooter

报表尾

pageHeader

页头,显示在每一个页面上。

pageFooter

页尾,显示在每个页面上

startGroupOnNewPage

空标记用来标记,标识报表分组是否开始于新的页面。rowsPerPage将被忽略。

emptyReportMessage

元素体内提供html信息展现,如果报表包含空数据。默认信息为”This report is empty.”

next

下一页标签,默认是next.

prev

前一页标签,默认是Prev

refresh

刷新标签,默认是Refresh.

editPage

编辑页面路径. 路径以“/”开始.

helpPage

帮助页面路径 路径以“/”开始.

 

属性

描述

rowsPerPage

标识每一页最大行数.

示例

        <portlet>

            <description>Areport showing overall student statistics.</description>

            <portlet-name>StudentReport</portlet-name>

           <portlet-class>com.nabhinc.portlet.report.ReportPortlet</portlet-class>

            <init-param>

               <name>editPage</name>

               <value>/portlets/report/report_edit.jsp</value>

            </init-param>

            <init-param>

               <name>helpPage</name>

               <value>/portlets/report/report_help.jsp</value>

            </init-param>

            <init-param>

               <name>dataSource</name>

                <value>java:comp/env/jdbc/sbtourdb</value>

            </init-param>

            <init-param>

               <name>listSQL</name>

                <value>SELECTlname,fname,phone,email,grade

                            FROMSB_TOUR_STUDENTS ORDER BY grade,lname

                </value>

            </init-param>

            <init-param>

               <name>countSQL</name>

                <value>SELECTCOUNT(*) FROM SB_TOUR_STUDENTS</value>

            </init-param>

            <init-param>

               <name>sectionName0</name>

               <value>gradeGroup</value>

            </init-param>

            <init-param>

               <name>sectionHeader0</name>

               <value>"Grade: " + gradeGroup</value>

            </init-param>

            <init-param>

               <name>sectionFooter0</name>

               <value>"Count: " + currentGroupSize</value>

            </init-param>

            <init-param>

               <name>sectionExpr0</name>

               <value>grade</value>

            </init-param>

            <init-param>

               <name>headers</name>

                <value>LastName,First Name,Phone,Email</value>

            </init-param>

            <init-param>

               <name>columns</name>

                <value>lname,fname,phone,email,grade</value>

            </init-param>

            <init-param>

               <name>columnExpr0</name>

               <value>lname</value>

            </init-param>

            <init-param>

                <name>columnExpr1</name>

               <value>fname</value>

            </init-param>

            <init-param>

               <name>columnExpr2</name>

                <value>phone== null ? "Not Available" : phone</value>

            </init-param>

            <init-param>

               <name>columnExpr3</name>

                <value>email== null ? "Not Available" : email</value>

            </init-param>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

               <portlet-mode>EDIT</portlet-mode>

            </supports>

            <portlet-info>

                <title>StudentReport</title>

               <keywords>Reports</keywords>

            </portlet-info>

            <portlet-preferences>

                <preference>

                   <name>rowsPerPage</name>

                   <value>10</value>

                </preference>

           </portlet-preferences>

        </portlet>

       

RSS / RDF Headlines Portlet

Java

com.nabhinc.portlet.rss.RSSPortlet

描述

RSS组件将展现头条内容其包含RSS或RDF资源。主要标记是URL用来指向包含头条信息的RSS文件。RSS/RDF将被缓存。缓存将定期更新,头条信息显示将被在maxItems标签中做限制。如果数据信息超过最大显示设置。则会显示more链接。

组件标签

初始化参数

描述

docURL

URL of the RSS / RDF file.

editPage

页面编辑路径。 路径以“/”开始.

helpPage

页面帮助路径。 路径以“/”开始.

 

属性

描述

maxItems

The maximum items/headlines shown at a time.

示例

        <portlet>

            <description>ASyndication Headlines news (RSS) from BBC.</description>

            <portlet-name>BBCNews</portlet-name>

           <portlet-class>com.nabhinc.portlet.rss.RSSPortlet</portlet-class>

            <init-param>

               <name>docURL</name>

                <value>http://www.bbc.co.uk/syndication/feeds/news/rss091.xml</value>

            </init-param>

            <init-param>

               <name>contentPage</name>

               <value>/portlets/rss/rss_view.jsp</value>

            </init-param>

            <init-param>

               <name>editPage</name>

               <value>/portlets/rss/rss_edit.jsp</value>

            </init-param>

            <init-param>

               <name>helpPage</name>

               <value>/portlets/rss/rss_help.jsp</value>

            </init-param>

           <expiration-cache>0</expiration-cache>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

               <portlet-mode>EDIT</portlet-mode>

            </supports>

            <portlet-info>

                <title>BBCWorld News</title>

               <keywords>News, RSS</keywords>

            </portlet-info>

           <portlet-preferences>

                <preference>

                   <name>maxItems</name>

                   <value>5</value>

                </preference>

           </portlet-preferences>

        </portlet>

       

Table Portlet

Java

com.nabhinc.portlet.table.TablePortlet

描述

表格组件将以表格的形式展现,典型的展现有,电子邮件,告警,任务等。列表数据直接从关系数据库通过SQL字符串查询。另外在表格中显示数据,组件为显示数据做如下配置。

·         列复选框。当选择表中的一行数据时,该动作可以触发SQL查询

·        在所有数据列上添加超链接。该配置批定一个基本URL,并给行中的数据添加索引。并命名查询参数附加到基本URL上。

·        根据列名排序的列按钮。

组件标签

初始化参数

描述

createPage

创建页面的路径.

createLabel

创建按钮的标签.

listSQL

查询字符串.

countSQL

查询结果行数

actionSQL

对删除和其它动作的Sql查询。

actionLabel

动作按钮的标签.

rowDisplayPage

每页显示的行数

linkColumnIndex

列索引链接.

primaryKeyIndex

主键列的索引号.

primaryKeyType

主键类型.

columnNames

列名(逗号分隔列表)

columnFormats

列格式 (逗号分隔).

columnTypes

列类型 (逗号分隔).

rowStateColumnIndex

Column index row state.

tableDisplayPage

显示表格的页面.

setIDPage

设置页面编号

errorPage

错误页面路径

includeName

包含名称

imageFolder

文件路径

searchLabel

查找按钮的显示名称

searchPage

查找页面

sortColumn

默认按哪列排序.

sortType

升序或降序(Ascending or descending)

insertUser

结合SQL标记。它呈现在TablePortlet定义的实现中,在这个实现中,组件当从数据库中检索数据时,需要插入用户的ID到SQL查询中。

emptyTableMessage

元素体内的HTML消息将被显示,如果表格要展现的portlet不包含数据。

insertParamName

插入参数名

insertParamValue

插入参数值

headers

元素体内标识了表头名称是用逗号分隔的列表

dataSource

元素体内标识的是关于表格的数据源名称。当JTA可用,则其内容是javax.sql.DataSource对象的JNDI名.

linkIDParamName

为参数添加链接ID

linkNameParamName

参数的链接名称

linkColumnIndex

链接列索引

linkNewWindow

新窗口链接

linkWindowHeight

新窗口的高度

linkWindowWidth

新窗口的宽度

editPage

页面编辑路径。 路径以“/”开始.

helpPage

页面帮助路径。 路径以“/”开始.

 

属性

描述

rowsPerPage

每页数据行数.

示例

          <portlet>

           <description>Potlet showing access logs recorded byDB.</description>

           <portlet-name>Portlet Access DB Logs</portlet-name>

            <portlet-class>com.nabhinc.portlet.table.TablePortlet</portlet-class>

            <init-param>

               <name>editPage</name>

               <value>/portlets/logger/loggger_edit.jsp</value>

            </init-param>

            <init-param>

                <name>helpPage</name>

               <value>/portlets/logger/loggger_help.jsp</value>

            </init-param>

            <init-param>

               <name>dataSource</name>

               <value>java:comp/env/jdbc/stringbeansdb</value>

            </init-param>

            <init-param>

               <name>listSQL</name>

                <value>SELECTacctime,pname,userid,remotehost,remoteaddress

                            FROMSB_ACCESS_LOGS</value>

            </init-param>

            <init-param>

                <name>countSQL</name>

                <value>SELECTCOUNT(*) FROM SB_ACCESS_LOGS</value>

            </init-param>

            <init-param>

               <name>emptyTableMessage</name>

                <value>No logsrecorded.</value>

            </init-param>

            <init-param>

               <name>sortColumn</name>

               <value>acctime</value>

            </init-param>

            <init-param>

               <name>columnNames</name>

               <value>acctime,pname,userid,remotehost,remoteaddress</value>

            </init-param>

            <init-param>

               <name>columnTypes</name>

               <value>TIMESTAMP,VARCHAR,VARCHAR,VARCHAR,VARCHAR</value>

            </init-param>

            <init-param>

               <name>columnFormats</name>

                <value>EEE MMMd HH:mm:ss z yyyy,null,null,null,null</value>

            </init-param>

            <init-param>

               <name>headers</name>

                <value>

                    Access Time,Portlet Name, User ID, Remote Host, Remote Address

                </value>

            </init-param>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

                <portlet-mode>EDIT</portlet-mode>

            </supports>

            <portlet-info>

                <title>Hit DBLogger</title>

               <keywords>Logs, Table</keywords>

            </portlet-info>

            <portlet-preferences>

                <preference>

                   <name>rowsPerPage</name>

                   <value>25</value>

                </preference>

             </portlet-preferences>

         </portlet>

       

URL Portlet

Java

com.nabhinc.portlet.url.URLPortlet

描述

URL组件类似于文件组件,除了将文件路径,规制成URL。它提供展现文件或文档。可以通过URL定位本地或远程文档。

该组件会缓存文件内容在服务启动时,在发送内容之前,它必须检查该文件是否被修改较新于缓存文件。如果文件被修改,那么缓存将被刷新(重新加载文件)。当支持XHTML-MP或(和)WML支持时可以使用用效的XHTML-MP或(和)WML文件。

组件标签

初始化参数

描述

URL

指定文档的URL

例如 file:///home/portlets/file/search.html

该参数不建议使用,最好用htmlURL代替。

htmlURL

指定HTML文件的地址。

例如 http://192.168.0.100/portlets/file/search.html.

当URL被标识时,该参数也将被处理。

URL或 htmlURL都是必填项

xhtmlURL

标识XHTML文档的地址

例如 http://www.mydomain.com/portlets/file/search.xhtml.

wmlURL

指定WML文件地址

例如 例如http://www.mydomain.com/portlets/file/search.wml.

helpPage

页面帮助路径。 路径以“/”开始

示例

        <portlet>

            <description>An 示例 of URL Portlet</description>

           <portlet-name>Welcome</portlet-name>

           <portlet-class>com.nabhinc.portlet.url.URLPortlet</portlet-class>

            <init-param>

               <name>filePath</name>

               <value>file:///home/portlets/file/samples/welcome.html</value>

            </init-param>

            <init-param>

               <name>xhtmlFilePath</name>

               <value>file:///home/portlets/file/samples/welcome.xhtml</value>

            </init-param>

            <init-param>

               <name>helpPage</name>

               <value>/portlets/file/file_help.jsp</value>

            </init-param>

            <supports>

                <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

            </supports>

            <supports>

               <mime-type>application/vnd.wap.xhtml+xml</mime-type>

            </supports>

            <portlet-info>

                <title>Welcome</title>

               <keywords>User, URL</keywords>

            </portlet-info>

        </portlet>

       

XSL Portlet

Java

com.nabhinc.portlet.xsl.XSLPortlet

描述

XSL组件使用XML样式表语言将XML文档转换成HTML做为WEB呈现。该文件可以是本地文件或通过URL访问的文件,也可以获取自定义XML资源实现。

组件标签

init-param

描述

xslPath

指定xsl样式表的相对路径(在stringbeans应用的根路径)

 路径以“/”开始。

xslPath和xslURL都需要指定

xslURL

指定xsl样式表的绝对路径或URL路径。该路径需要包含“://”,xslPath和xslURL都需要指定。

 

属性

描述

docPath

指定xml文档的相对路径(在stringbeans应用的根路径)

路径以“/”开始.

 docPath 和 docURL 都需要指定

docURL

指定xml文档的绝对路径或URL,指定xsl样式表的绝对路径或URL路径。该路径需要包含“://”,docPath 和 docURL 都需要指定。

示例

        <portlet>

           <description>Generates tabular display fr a stock quote inXML.</description>

            <portlet-name>XSLStock Quote</portlet-name>

           <portlet-class>com.nabhinc.portlet.xsl.XSLPortlet</portlet-class>

           <init-param>

               <name>xslPath</name>

               <value>/portlets/xsl/samples/quote.xsl</value>

            </init-param>

           <init-param>

               <name>contentPage</name>

               <value>/portlets/xsl/xsl_view.jsp</value>

            </init-param>

           <init-param>

               <name>editPage</name>

                <value>/portlets/xsl/xsl_edit.jsp</value>

            </init-param>

           <init-param>

               <name>helpPage</name>

               <value>/portlets/xsl/xsl_help.jsp</value>

            </init-param>

          <expiration-cache>3600</expiration-cache>

            <supports>

               <mime-type>text/html</mime-type>

               <portlet-mode>HELP</portlet-mode>

            </supports>

            <portlet-info>

                <title>XSLPortlet: Stock Quote for NABH</title>

                <keywords>XSL,Samples</keywords>

            </portlet-info>

           <portlet-preferences>

               <preference>

                   <name>docPath</name>

                   <value>/portlets/xsl/samples/quote.xml</value>

                </preference>

           </portlet-preferences>

        </portlet>

       

主题

在当前版本中提供了10个不同的主题。它们可以stringbeans目录/themes目录下找到。

添加新主题很简单,只需要通过如下步聚:

·        在themes目录下新建文件夹,并在该文件夹内定义portal.xml文件

·        在上一步创建的文件夹内创建样式文件,命名为portal.css。样式文件中必须定义下表中的类描述符。你也可以拷贝其它文件夹中已存在的protal.css修改或定义新的类样式。

·        在新建的主题目录下新建images目录(它必须和portal.css文件同级)。拷贝所有你的主题图片到该images目录。有30图片/图标(必要的)将在主题图像列表中展现。

·        在主题中更多的高级自定义(改名),例如,你需要重新定位banner区域或指定页面格式,拷贝partal.jsp和它包含的文件到你的主题目录。默认的stringbeans portal.jsp文件可以在strinbeasn根目录/my 目录下。拷贝你需要的这些文件到你的主题目录做必要的修改。以下文件你可以在stringbeans根目录/my 目录下找到:

§  portal_vars.jsp:定义通用的变量将被用于后续的jsp文件 中。你必须始终包含这个文件。并确保变量在这里定义

§  portal_header.jsp:显示头

§  portal_menu.jsp : 显示顶层菜单条,以Tab页的形式展现。portal_spacer.jsp : 渲染空白生。

§  portal_icon_bar.jsp –定义工具符图标,它将在页面创建和编辑时呈现。

§  portal_body.jsp (*) –基布局信息,多个布局在这个页面上。 portal_footer.jsp – 显示页面底部.

另外,以下文件文件包含在portal上显示:

§  portlet_narrow.jsp –渲染组件在窄列中的显示.

§  portlet_wide.jsp –渲染组件在宽列中显示 (宽度 > 250)

§  portlet_menu.jsp –渲染组件在菜单列中 (在menu布局下有效)。

§  action_links.jsp (*) – 显示组件图标,它允许改变组件的模式和窗口状态。

§  column_layout.jsp (*) – 渲染列布局(包含在normal.jsp)

§  single_layout.jsp (*) – 渲染单独的组件布局(包含在normal.jsp)

§  menu_layout.jsp (*) – 渲染菜单布局(包含在normal.jsp)

§  detached.jsp (*)- 渲染detached portlet 窗口.

§  maximized.jsp (*) – 渲染最大化组件.

§  normal.jsp (*) – 渲染普通模式下的门户页.

§  portal_banner.jsp –渲染门头 (包含在portal_header.jsp)

§  portal_date.jsp – 显示当前日期 (包含在portal_header.jsp)

建议你不要改变文件标记(*)

Style Class Name

描述

.ThemeInfo

主题名称。该属性值将会显示在属性界面的下拉列表中

.Body

视图容器

.Page

包含在视图容器中,用来定义页面宽度

.PortalDate

页面上方显示日期

.TopLink

顶端页面链接。例如Preferences,Edit Profile和Logout。另外,还定义了鼠标移上的样式

.Banner

标题占位符

.MenuBar

菜单条,包含菜单项。当当前页面为活动页面时没有链接

.MenuBarLink

可以链接的菜单项。也定义了鼠标移上的样式。

.IconBar

菜单条上的图标的在这里可以定义创建 编辑 和删除图标。

.Spacer

两个组件间的缝隙填充

.WideColumn

列宽宽于250 px.

.WidePortlet

宽组件包含的头/标题和内容

.WidePortletHeader

宽组件包含的头/标题

.WideContent

宽组件包含的内容

.NarrowColumn

列宽小于250像素 250 px.

.NarrowPortlet

窄组件包含的头/标题和内容

.NarrowPortletHeader

窄组件包含的头/标题

.NarrowContent

窄组件包含的内容

.MenuPanel

左菜单导航面板

.UnselectedOption

未选中菜单项

.SelectedOption

选中菜单项

.Footer

页面底条

.Copyright

底条中的版权声明

.GroupHeader0

报表组件 分组头样式.

.GroupHeader1

报表组件 分组头样式,字体大小小于GroupHeader0

.Tooltip

 

需要: visibility:hidden;position:absolute 样式属性,为的是隐藏提示,当移动到相应的标签上才显示信息。

.portlet-font

Use interchangeable with portlet-section-body.

.portlet-section-body

Used mostly in portlet's table's row. Use alternately with portlet-section-alternate.

.portlet-section-alternate

Used mostly in portlet's table's row. Use alternately with portlet-section-body.

.portlet-section-header

组件表格头.

.portlet-msg-error

组件错误提示信息

.portlet-msg-alert

组件警告信息

.button

表单中的按钮:ubmit, cancel, done, reset, apply, continue, OK

.text, .password, .checkbox, .radio

表单其它项

除上面提到的类,还要定义html标记的其它样式:

·        a (链接, 包括a:hover and a:visited)

·        textarea and select (表单)

·        h1, h2, h3, h4, h5, h6 (标题).

Image Name

Size

描述

admin.gif

14x14

当前未用,保留当框架添加支持管模式组件。

ascending.gif

10x10

表格组件中用来指示升序排序

banner.gif

960x67

门户横幅图片

bottom_left.gif

18x18

底栏和左边栏

bottom_right.gif

18x18

底栏右边

delete.gif

14x14

显示在组件头上用来在页面上删除窗口。

delete_page.gif

16x16

删除页面按钮,在图标工具条的上方

delete_page_gray.gif

16x16

禁用删除页面按钮。在默认页面的图标工具条的上方。

descending.gif

10x10

使用表格组件时用来标识降序排列

detach.gif

14x14

分享按钮显示在组件头上。

edit.gif

14x14

编辑按钮显示在组件头上。

edit_page.gif

16x16

图标显示在顶层工具栏上。用来编辑当前页面内容。

edit_page_gray.gif

16x16

禁止编辑当前页面图标。图标显示在顶层工具栏

help.gif

14x14

在组件头上的帮助按钮

hideborder.gif

14x14

图标位于编辑内容页面,用来隐藏组件边框。

hidetitle.gif

14x14

图标位于编辑内容页面,用来隐藏组件标题

max.gif

14x14

图标位于组件头用来最大化组件

movedown.gif

14x14

图标位于页面内容编辑,用于下移组件

movedown.gif

14x14

Icon on page content editor for moving down a portlet.

moveleft.gif

14x14

图标位于页面内容编辑,用于左移组件

moveright.gif

14x14

图标位于页面内容编辑,用于右移组件

moveup.gif

14x14

图标位于页面内容编辑,用于上移组件

new_page.gif

14x14

图标位于工具条,用于创建新的门户标签页

non_secure.gif

14x14

图标位于图标工具条,用于访问普通(http)方式访问门户页。

pixel.gif

1x1

透明图片,用来维护标题栏的宽度和创建空白元素。

restore.gif

14x14

该图标位于最大化组件窗口,用来恢复组件的正学显示。

secure.gif

14x14

组件位于工具条,用来以(https)方式访问页面。

showborder.gif

14x14

图标位于页面内容编辑,用来显示组件边框

showtitle.gif

14x14

图标位于页面内容编辑,用来显示组件标题

view.gif

14x14

图标位于组件头,用来改变,组件显示模式。

国际化

当前有6种预定义的语言体系:美英(en_US),英英(en_UK),德语(de),法语(fr),印尼语(id/in),西班牙语(es)。

支持其它语言:

1.   找到locale.properties 文件,位于stringbeans根目录/WEB-INF/目录。

2.   拷贝并粘贴文件中以###开始到###结束的内容

3.   替换拷贝出来的区域的语言名称代码为需要添加的语言代码。如查语言中标识了country,name则它们的出现顺序如:语言代码+下划线+国家代码。如:en_GB

注意:

o   语言代码必须定义在 ISO639中的双字符小写代码

o   国家代码必须是定义在ISO 3166中双字符大写代码

 

示例: sb.locale.en_GB.portal.welcome = Welcome

4.   在protal.xml配置文件<support-locales>标签中添加你想支持的语言。

已知问题

·        当不同的URL用来登录访问同一个门户则要求用户重新登录。例:http://localhost:8080 换成 http://192.168.0.1:8080,反之也一样。将会有新的会话被创建而之前的一个还一直有效并记录在online-users表中。在线用户将显示同一ID的两个活动用户。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
d?fileid=aaa9aee4717d33272bd7ea028fa03118b693919f23b18febf9f6cee1158e8f4cf027542c71c8cf98d63770ccdf3bd1750e6b92e28c43dccd4" /></p><div class="ckeditor-html5-video" data-widget="html5video" style="text-align:left"><video controls="controls" src="/weaver/weaver.file.FileDownload?fileid=aad6f413f83191673980c5ee24b412880d6b9e8703caca411faec3276fe8133f5fa7e34630ca89ace63770ccdf3bd175071362141037cfb4e&download=1" style="max-width:100%"> </video></div><table border="1" cellpadding="1" style="width:500px;"> <tbody> <tr> <td style="padding: 1px;">1</td> <td style="padding: 1px;">1</td> </tr> <tr> <td style="padding: 1px;">2</td> <td style="padding: 1px;">2</td> </tr> <tr> <td style="padding: 1px;">3</td> <td style="padding: 1px;">3<a href="http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830" target="_blank">http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830</a></td> </tr> </tbody></table><p>测试<a href="http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830" target="_blank">http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830</a></p><p> </p><p>修改一下吧 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq<img alt="" src="/weaver/weaver.file.FileDownload?fileid=a7617945ec5f52ec80aaa43ee8504de0a1b14d5eca4a98834494c85349762c626dec7ba8d0da277106ee600d27743f4e44f710fbddd167603" /></p></div> Java获取内<p>标签里的》
最新发布
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值