Portal用起来怪麻烦的,幸好IBM出了个Portal Struts Framework用起来跟普通的strtus没多大的区别,看看IBM Portal 的portal URL是怎么生成的,先看下面这段代码:
public static String createURL(PageContext pageContext, String action,

Map params)
{
HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
StringBuffer results = new StringBuffer();

PortletApiUtils portletUtils = PortletApiUtils.getUtilsInstance();


if (portletUtils != null)
{
PortletURIAttributes uriAttributes = new PortletURIAttributes();
uriAttributes.setUriType("standard");
uriAttributes.setWindowState(null);
Object portletURI = portletUtils.createPortletURIWithStrutsURL(
request, calculateURL(pageContext, action, params),
uriAttributes);
results.append(portletURI.toString());

} else
{
results.append(calculateURL(pageContext, action, params));
}

return results.toString();
}

private static String calculateURL(PageContext pageContext, String action,

Map params)
{

String url = null;

try
{
String page = null;
String href = null;
String forward = null;
url = WpsRequestUtils.computeURL(pageContext, forward, href, page,
action, params, null, false, false);

} catch (MalformedURLException e)
{
e.printStackTrace();
}

return url;
}
通过调用createURL方法就可以产生一个portal的url了