java如何从WebSphere Portal页面获取页面名称?
我正在为WebSpherePortal8创建一个portlet,并希望检索呈现我的portlet的页面名称。这一点很重要,因为根据页面的不同,portlet将以不同的方式提供内容
我尝试过使用NavigationSelectionModel API,但认为我没有正确使用它。我希望这段代码发生在视图呈现之前,并将代码放入doView方法中。问题是我无法强制转换ServletRequest/Response,因为我在doView方法中只有RenderRequest和RenderResponse可用
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
// Declarations
List<ForeignAuthority> faList = new ArrayList<ForeignAuthority>();
String resp;
// Set the MIME type for the render response
response.setContentType(request.getResponseContentType());
// Check if portlet session exists
ForeignAuthoritiesPortletSessionBean sessionBean = getSessionBean(request);
if (sessionBean == null) {
response.getWriter().println("<b>NO PORTLET SESSION YET</b>");
return;
}
try{
Context ctx = new InitialContext();
NavigationSelectionModelHome home = (NavigationSelectionModelHome)
ctx.lookup("portal:service/model/NavigationSelectionModel");
if (home != null) {
NavigationSelectionModelProvider provider =
home.getNavigationSelectionModelProvider();
NavigationSelectionModel model =
provider.getNavigationSelectionModel((ServletRequest)request, (ServletResponse)response);
for (java.util.Iterator i = model.iterator(); i.hasNext(); )
{
NavigationNode node = (NavigationNode) i.next();
if (i.hasNext()) {
System.out.println(node.getObjectID().getUniqueName());
}
}
}
}catch(Exception e){
e.printStackTrace();
}
PortletRequestDispatcher rd = getPortletContext()
.getRequestDispatcher(getJspFilePath(request, VIEW_JSP));
rd.include(request, response);
}
预期的结果是检索呈现portlet的当前页面的页面名或唯一名称
共 (0) 个答案