我有下面这段代码来从门户页面唯一名获取WebSphere门户网址。但是生成的URL也有我不需要的导航状态细节。我需要没有任何状态信息的URL。请在这方面提供帮助。提前感谢!!
URLFactory urlFactory = null;
SelectionAccessorController selCtrl = null;
PortletServiceHome serviceHome = null;
Context ctx = null;
try {
ctx = new InitialContext();
serviceHome = (PortletServiceHome) ctx.lookup("portletservice/com.ibm.portal.state.service.PortletStateManagerService");
PortletStateManagerService service =
(PortletStateManagerService) serviceHome
.getPortletService(PortletStateManagerService.class);
try {
PortletStateManager manager = service.getPortletStateManager(request, response);
urlFactory = manager.getURLFactory();
EngineURL url = urlFactory.newURL(Constants.EMPTY_COPY);
com.ibm.portal.state.accessors.selection.SelectionAccessorFactory selFct =
(com.ibm.portal.state.accessors.selection.SelectionAccessorFactory) manager
.getAccessorFactory(com.ibm.portal.state.accessors.selection.SelectionAccessorFactory.class);
selCtrl = selFct.getSelectionAccessorController(url.getState());
selCtrl.setSelection(uniqueName);
return url.writeDispose(new StringWriter()).toString();
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
if (null != selCtrl)
selCtrl.dispose();
if (null != urlFactory)
urlFactory.dispose();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != selCtrl)
selCtrl.dispose();
if (null != urlFactory)
urlFactory.dispose();
}
return null;
}发布于 2014-09-26 03:23:32
尝试使用FriendlyUrl来生成EngineUrl,而不是使用Url。
FriendlyURL url=urlFactory.newURL(Constants.EMPTY_COPY);
url.setSelection("ibm.portal.Home");
url.dispose();发布于 2017-03-15 19:09:45
我尝试了一下,并使用了一个简短的URL:
EngineURL url = urlFactory.newURL(Constants.DEEP_COPY);
我使用的是Constants.DEEP_COPY而不是Constants.EMPTY_COPY
https://stackoverflow.com/questions/26018290
复制相似问题