gpt4 book ai didi

java - 如何从WebSphere Portal 页面获取页面名称?

转载 作者:行者123 更新时间:2023-12-02 06:20:21 25 4
gpt4 key购买 nike

我正在为 WebSphere Portal 8 创建一个 portlet,并且想要检索呈现我的 portlet 的页面名称。这很重要,因为根据页面的不同,Portlet 将以不同的方式提供内容

我尝试使用 NavigationSelectionModel API,但认为我没有正确使用它。我希望此代码在渲染 View 之前发生,并将代码放入 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 的当前页面的唯一名称。

最佳答案

您可以尝试下面的代码片段是否有帮助。您可以获取 URI 值并从中提取页面名称。

HttpServletRequest httpServletRequest = PortletUtils.getHttpServletRequest(renderRequest);httpServletRequest.getRequestURI();

关于java - 如何从WebSphere Portal 页面获取页面名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55838519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com