頁面標題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