WebSpherePortal中的SEO(页面标题)
页面标题 有没有一种方法可以在运行时动态更改页面标题 我知道您可以在门户级别更改页面标题,但这种解决方案 不提供任何SEO价值,因为它不会更改页面中的标题标签 就我所见,更改门户标题的方法是非常静态的(这些是全局设置):WebSpherePortal中的SEO(页面标题),seo,websphere-6.1,websphere-portal,Seo,Websphere 6.1,Websphere Portal,页面标题 有没有一种方法可以在运行时动态更改页面标题 我知道您可以在门户级别更改页面标题,但这种解决方案 不提供任何SEO价值,因为它不会更改页面中的标题标签 就我所见,更改门户标题的方法是非常静态的(这些是全局设置): 更改主题策略中的横幅文字 如果不存在,请将bannerTitleTextResourceBundle和bannerTitleTextResourceKey调整为所需的值 否则,在主题配置中全局设置标题 我们的目标是能够在页面级别设置标题,以便它可以在页面之间更改,并包含相关
- 更改主题策略中的横幅文字
- 如果不存在,请将bannerTitleTextResourceBundle和bannerTitleTextResourceKey调整为所需的值
- 否则,在主题配置中全局设置标题
private static com.ibm.portal.state.service.PortalStateManagerServiceHome portalStateManagerServiceHome;
// (This goes in the jspInit constructor)
portalStateManagerServiceHome = (com.ibm.portal.state.service.PortalStateManagerServiceHome) ctx.lookup("portal:service/state/PortalStateManager");
protected com.ibm.portal.state.service.PortalStateManagerService getStateManagerService( javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws Exception {
final com.ibm.portal.state.service.PortalStateManagerService psms = portalStateManagerServiceHome.getPortalStateManagerService( (javax.servlet.http.HttpServletRequest) request, (javax.servlet.http.HttpServletResponse) response );
return psms;
}
protected boolean isStaticPage( javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws com.ibm.portal.ModelException {
final com.ibm.portal.model.NavigationSelectionModelProvider nsmProvider = navigationSelectionModelHome.getNavigationSelectionModelProvider();
final com.ibm.portal.navigation.NavigationSelectionModel nsm = nsmProvider.getNavigationSelectionModel(request, response);
final com.ibm.portal.navigation.NavigationNode currentNavNode = (com.ibm.portal.navigation.NavigationNode) nsm.getSelectedNode();
final com.ibm.portal.content.ContentNode currentContentNode = currentNavNode.getContentNode();
return currentContentNode.getContentNodeType().equals( com.ibm.portal.content.ContentNodeType.STATICPAGE );
}
protected com.ibm.portal.navigation.NavigationNode getSelectedNode( final javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws com.ibm.portal.ModelException {
com.ibm.portal.model.NavigationSelectionModelProvider nsmProvider = navigationSelectionModelHome.getNavigationSelectionModelProvider();
com.ibm.portal.navigation.NavigationSelectionModel nsm = nsmProvider.getNavigationSelectionModel(request, response);
return (com.ibm.portal.navigation.NavigationNode) nsm.getSelectedNode();
}
protected String getSelectedNodeTitle( final javax.servlet.ServletRequest request, javax.servlet.ServletResponse response ) throws com.ibm.portal.ModelException {
final String title;
if ( localizedContextHome != null ) {
com.ibm.portal.model.LocalizedContext context = localizedContextHome.getLocalizedContext( (javax.servlet.http.HttpServletRequest) request );
title = context.getTitle( getSelectedNode( request, response ) );
} else {
title = "";
}
return title;
}
添加这个之后,我能够从6.1.5主题复制head_title.jspf;其中包括以下新行:
<c:set var="selectedNodeTitle" value="<%=getSelectedNodeTitle(request, response)%>" />
<title><c:out value="${siteTitle} - ${selectedNodeTitle}"/></title>
现在剩下的就是找到一种从WCM获取此信息的方法。我将介绍缺少的WCM部分,因为我已经实现了它。我将能够给你所需的信息,但不是现成的代码。它只是从一条溪流中阅读,然后写进另一条溪流中,这样你就应该能够理解这个想法。使用Portal6.1最合理的方法是为该需求开发一个应用程序。您要做的是:
,以及一些稍后可以从生成的html解析的方案servlet过滤器对性能的影响可以忽略不计(总共只有两个百分比),并且该方法简单有效。根据我的经验,它在搜索引擎优化方面非常有效,你可以通过这种方式从WCM获得几乎所有的信息。我只是想更新这个问题,提到有一个新的功能,可以更好地实现同样的目标 新的Web内容查看器(286)利用了JSR286中名为“两阶段渲染”的新功能,其中创建了名为DoHeader的新事件。在doHeaders事件下,可以修改响应,以便在head中添加元素,例如title 现在,Web内容查看器提供了一个页面显示标题设置,允许您从内容中进行选择 现在剩下的就是让我们开发人员能够从Web内容中设置其他元素,例如:规范元素/链接、元标记等。但是我认为新的Web内容文件夹功能可以让我们在主题级别构建一些东西
祝所有关注SEO的Lotus Web内容管理开发人员好运。如果您还有其他问题要补充,请编辑您的问题。这是一个问答网站,不是论坛。谢谢你。所有这些听起来都很有希望。我试试看。