1、 简介
portal是一种web应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个web页面里的活动。
2、Hyperic HQ Portal
2.1Portal模型
2.1.1 Portal类
Portlet的容器,封装了页面名称、portlet显示列数、portlet集合以及工作流workflow信息。
属性说明:
_name :portal名,使用properties文件中的i18n命名。portal名用于页面<title>名称显示。
_columns :portal列数量。(在Dashboard页面,portal有两列portlets)。
_portlets :portlet集合。 PS:_portlets是一个List<List<Portlet>>类型的集合。Portlet经过两层封装,先封装成列,然后再封装到Portal中。
方法说明:
createPortal() :Portal类的静态工厂方法,用于创建Portal对象。有一个无参数的方法和一个有两个参数的重载方法。
addPortlet(portlet,column) :添加portlet到Portal的column列。
addPortlets() :添加portlets集合(列)到Portal中。
public class Portal {
pirvate String _name;
private String _description; //portal描述。
private int _columns;
private List _portles = new ArrayList();
private boolean _dialog = false;
private boolean _workflowPortal = false;
private Map _workflowParams = false;
//构造方法。构造Portal只使用Portal类的静态方法createPortal,所以此构造方法可以改为private。
public Portal(){}
//静态工厂方法构造Portal对象。
public static Portal createPortal() {
Portal portal = new Portal();
portal.setColumns(1);
portal.setDialog(false);
return portal;
}
//通过参数portalName和portletName构造portal的静态工厂方法。portletName为portlet的url值(也可以用Tiles Definition对象名称)。
public static Portal createPortal (String portalName, String portletName) {
Portal portal = new Portal();
portal.setName(portalName);
List definitions = new ArrayList();
definitions.add(portletName);
portal.addPortlets(definitions);
return portal;
}
//添加一个Portlet至Portal中。
public void addPortlet(Portlet portlet, int column) {
if(column > _columns){
setColumns(column);
}
List col = (List)_portlets.get(column-1);
col.add(portlet);
}
public void addPortlets(List definitions , int columns){
//略
}
//setters and getters
}
2.1.2 Portlet类
Portlet类,封装url的portal单元。该类对象封装在Portal的portlets集合中,用于批量引入显示url内容。url一般为请求地址或者Tiles Definition。
属性说明:
_url :portlet最重要属性,用于加载请求地址或者Tiles。
_name :portlet名,可以为空,很少用到。
方法说明:
Portlet(String url) :通过Url创建portlet对象。
public class Portlet(){
private String _name; //portlet名,可以为空。
private String _description;
private String _url; //portlet最重要的属性,portlet只要有url就可以完成portal功能。
private String _label;
private String _fullUrl;
private String _isFirst = false;
private String _isLast = false;
public Portlet(){}
public Portlet(String url){ //Portal构造方法,主要参数即url。 PS:此构造方法在Portal.createPortal(String portalName, String portletName)中调用,此方法中把portletName赋值给portlet.url,在这里造成歧义。
super();
_url = url;
}
public Portlet(String url ,String fullUrl){
this(url);
_fulUrl = fullUrl;
}
//setters and getters
}
2.2 PortalAction
控制Portal的Action类:Portal生命周期的初始化,Portal放入request,在JSP页面通过EL表达式获取Portal并加载Portlet中的url地址或Tiles页面。
/**
* 控制资源页面Portal展示的PortalAction类。PortalAction配置在Tiles配置文件中,作为Tiles的ControllerUrl请求的Action类,Tiles页面会在加载之前请求此类,执行初始化工作。
*/
public class ResourceHubPortalAction extends BaseAction{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,//默认的execute方法。PortalAction类也可以继承DispatchAction,通过其他method控制portal。
HttpServletResponse response) throws Exception {
…………
Portal portal = Portal.createPortal("resource.hub.ResourceHubTitle", ".resource.hub"); //resource.hub.ResourceHubTitle:portal名称,即新页面title名称,通过i18n值显示。
//.resource.hub:Tiles定义,用于显示的portal页面。
request.setAttribute(Constants.PORTAL_KEY, portal); //把portal放入request中,key为Constant.PORTAL_KEY,即"portal"。
…………
return null; //返回null,页面已经先确定,这里只做显示前的拦截初始化portal等内容。
}
}
2.3 配置文件
2.3.1 struts配置文件
<action path="/ResourceHubLayout" name="ResourceHubForm" scope="request" forward=".resource.hub.layout"/>
2.3.2 tiles 配置文件
.resource.hub.layout加载页面内容之前,会被/resource/hub/ResourceHubPortal.do拦截,通过ResourceHubPortalAction加载portal对象。
<definition name=".main.layout" path="/portal/MainLayout.jsp">
<put name="body" value="/portal/ColumnsLayout.jsp" />
</definition>
<definition name=".main.resource.content.layout" extends=".main.layout">
<put name="body" value="/portal/ColumnsLayout.jsp" />
</definition>
<definition name=".resource.hub.layout" extends=".main.resource.content.layout" controllerUrl="/resource/hub/ResourceHubPortal.do" />
2.3.3 spring 配置文件
Struts Action通过Spring IOC管理
<bean name="/resource/hub/ResourceHubPortal" class="org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction" />
2.4 JSP文件
Tiles definition .main.layout中的ColumnsLayout.jsp页面代码。
通过EL表达式获取portal,通过JSTL forEach标签遍历portal,获得portlet列集合。然后遍历列中的portlet,通过<tiles:insert>将url插入页面。
<c:forEach var="columnsList" items="$[portal.portlets]" >
<c:forEach var="portlet" items="$[columnsList]" >
<tiles:insert beanProperty="url" beanName="portlet" flush="true"/>
</c:forEach>
</c:forEach>
分享到:
相关推荐
- **插件扩展**:HypericHQ提供了一个强大的管理Portal,可通过XML或任何编程语言与Hyperic管理插件结合,扩展至管理所有类型的软件和硬件设备。 #### 六、网络设备指标监控 HypericHQ支持多种网络设备的监控指标...
- 研究 HQ Agent 的配置文件,理解各参数的意义。 - 根据实际需求调整配置。 ##### 2. 控制 Agent 操作 - 使用命令行工具启动、停止 Agent。 - 通过命令行查看 Agent 状态。 通过以上步骤,可以顺利完成 Hyperic ...
### Hyperic HQ安装配置指南(第一部分)知识点详解 #### 一、安装要求 Hyperic HQ的安装配置涉及多个方面,主要包括服务器、数据库和代理的要求。 ##### 1.1 HQ服务器要求 - **HQ Server JRE要求**:Hyperic HQ...
《从源码编译构建Hyperic HQ:深入理解与实践》 Hyperic HQ,作为一个开源的企业级基础设施管理工具,提供了一整套强大的监控和管理解决方案,涵盖了服务器、网络设备、数据库、应用程序等IT资源。本篇文章将带领...
### Hyperic HQ 在 Linux 下的安装教程 #### 一、Hyperic HQ Server 的安装 **1. 创建新用户 hq** - 在 Red Hat 6.4 或其他兼容的 Linux 发行版上,首先需要创建一个新的用户账户 `hq` 用于安装 Hyperic HQ。 `...
- **报警机制**:当监控的指标超过预设阈值时,hq-server会触发报警,通过邮件、短信等方式通知运维团队,确保及时响应。 - **报表和历史数据**:Hyperic HQ提供了丰富的图表和报表,用于分析历史数据,进行趋势...
此外,Hyperic HQ的管理portal可通过XML或PDK扩展,适应各种软件和硬件设备的管理需求。 Hyperic HQ支持多种操作系统和应用服务器的监控,如AIX、HP/UX、Solaris、Linux、Windows、Mac OS X、WebLogic、WebSphere、...
**Hyperic HQ 使用说明** Hyperic HQ 是一款强大的企业级 IT 运维管理工具,它为企业提供了一套全面的基础设施监控解决方案。通过Hyperic HQ,管理员可以实时了解系统的健康状况,及时发现并处理问题,确保业务的...
- 登录HQ portal后,首先看到的是Dashboard界面。这个界面可以将所需的资源、图表或者告警集成在一起,提供一个综合视图,便于集中查看和管理。 ##### 2. Resources - 显示所有被管理资源的列表,用户可以查看各个...
Hyperic HQ Server是一款功能强大的IT基础设施管理工具,主要用于监控、管理和维护企业的IT环境。这款软件由SpringSource开发,后来被VMware收购,并整合到vRealize Operations Suite中。Hyperic HQ Server提供了...
告警机制是 Hyperic HQ 的核心功能之一,它允许用户针对特定服务的具体参数设置阈值,一旦超出这些阈值,系统就会自动触发告警。告警设置的过程大致如下: 1. 选择需要监控的服务。 2. 定义新的告警规则。 3. 设定...
Hyperic HQ 是一个开源的IT管理框架,让用户使用统一的界面来管理各种不同的IT技术。
手册介绍了HQ API的版本兼容性,即它支持的vFabric Hyperic、vFabric Suite以及vFabric Cloud Application Platform的具体版本,保证了文档内容的有效性和及时性。如果需要获取文档的最新版本或有更新的版本信息,...
HQ汉化_版本是HQ的3.2.1 ApplicationResources.properties 博文链接:https://hongliangpan.iteye.com/blog/225730
这是我自己做的Hyperic-hq-4.4.0的一键安装版本(Win32环境),不需要任何其他操作,默认安装在D:\Hyperic 文件夹下。记住,安装server期间如果出现重启现象,请在安装前就关闭360安全卫士(设置不当有冲突),且...
Hyperic简体中文版,与英文版尽量同步。欢迎使用,并提出建议。 中文手册(收费) http://www.innovatedigital.com/hypericmanual 问题反馈: http://www.oschina.net/p/hyperic+hq support@InnovateDigital.com
Hyperic Mule Plugin是一款针对Mule ESB(企业服务总线)的监控插件,主要用于集成到Hyperic HQ(Hyperic运维中心)中,提供对Mule ESB运行状态的全面监控与管理。这个插件的使用,极大地增强了IT团队对于企业级服务...
Hyperic Agent是Hyperic监控系统的重要组成部分,负责在被监控主机上收集数据,并将其发送到Hyperic HQ(主控台)。在Windows平台上,Hyperic Agent的安装包通常以`.zip`格式提供,如`hyperic-hq-agent-3.1.4-EE-504...