Portle的标题可以事先设置,但如果是多个实例的话,如果希望是画面显示的设置一个约定的名字的话.
可以用JavaScript来做. 根据生成的HTML来写js.
由于一个画面可能有多个Portlet,所有不能直接根据portlet-title-text这个css来取得对象.
需要先根据确定是这个portlet后往下找就可以了.
JS例子:
<script type="text/javascript">
<!--
<liferay-portlet:namespace/>setPortletTitle();
function <liferay-portlet:namespace/>setPortletTitle() {
try {
var portletHeader = document.getElementById("portlet_<%=PortalUtil.getPortletId(renderRequest) %>");
var portletTopper = getChildByCssClass(portletHeader, "portlet-topper");
if (portletTopper != "") {
var portletTitle = getChildByCssClass(portletTopper, "portlet-title");
if (portletTitle != "") {
var title = getChildByCssClass(portletTitle, "portlet-title-text");
title.innerHTML = "<%=portlet_name%>";
}
}
} catch (e) {
}
}
function getChildByCssClass(element, cssClass) {
var children = element.childNodes;
for (var ix = 0; ix < children.length; ix++) {
if (children[ix].className == cssClass) {
return children[ix];
}
}
}
//-->
</script>
其实最简单是用服务器端用java设置,renderResponse.setTitle("Portlete title");