有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案