页面标题SEO WebSphere Portal中(页标题)
有没有办法来dinamically更改页面标题在运行时?
我知道您可以在门户级别更改页面标题,但此解决方案 不提供任何SEO值,因为它不会更改页面中的TITLE标记。
对于我所看到的方式改变了门户网站的标题是非常静态的(这些是全局设置):
- 在主题策略更改bannerTitleText
- 如果不是出现调整bannerTitleTextResourceBundle和bannerTitleTextResourceKey设置为所需的值。
- 否则,全局设置标题在主题配置
我们的目标是能够设置标题在页面级别,以便它可以从一个页面切换到页面,并包括相关页面的关键字。
事实上,如果这可以从WCM完成,那将是最理想的。
更新
我注意到,在WebSphere Portal中6.1.5默认的主题被附加在网页标题,所以检查的主题,肯定够了jspInit.jspf有以下一些新的方法:
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获取此的一种方式。
如果你有更多东西要添加到它,请编辑你的问题。这是一个Q/A网站,而不是论坛。 – dandan78 2011-05-04 09:37:01