OK, I finally was able to ask to the person who had worked on this kind of thing before and he gave me some guidelines in order to get my development done.
What I ended by doing is the following:
First, I did this in the doView method of the portlet (in this example, /Feedback/src/com/ibm/feedback/FeedbackPortlet.java):
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
response.setContentType(request.getResponseContentType());
String targetJsp = "/_Feedback/jsp/html/FeedbackPortletView.jsp";
String nextTask = request.getParameter("nextTask");
if ("verFormulario".equalsIgnoreCase(nextTask)) {
targetJsp = "/_Feedback/multibox/files/feedbackform.jsp";
}
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(targetJsp);
rd.include(request, response);
}
Then, in the JSP for the Portlet view (in this example /Feedback/WebContent/_Feedback/jsp/html/FeedbackPortletView.jsp), goes the following:
<%@page session="false" contentType="text/html" pageEncoding="ISO-8859-1" import="java.util.*,javax.portlet.*,com.ibm.feedback.*"%>
<%@page import="com.ibm.wps.l2.urlspihelper.portletrequest.PortletURLHelper"%>
<%@page import="javax.portlet.PortletURL"%>
<%@page import="javax.servlet.jsp.jstl.core.LoopTagStatus"%>
<%@page import="java.util.HashMap"%>
<%@taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
<%@taglib uri="http://www.ibm.com/xmlns/prod/websphere/portal/v6.1/portlet-client-model" prefix="portlet-client-model"%>
<portlet:defineObjects/>
<portlet-client-model:init>
<portlet-client-model:require module="ibm.portal.xml.*"/>
<portlet-client-model:require module="ibm.portal.portlet.*"/>
</portlet-client-model:init>
<head>
<%
PortletURL url = renderResponse.createRenderURL();
url.setParameter("keepSession", "true");
url.setParameter("saveMap", "true");
StringBuffer sb = new StringBuffer();
HashMap params = new HashMap();
params.put("nextTask", new String[] { "verFormulario" });
%>
<!-- Copy code below -->
<link type="text/css" rel="stylesheet" href="<%=renderResponse.encodeURL(renderRequest.getContextPath())%>/_Feedback/multibox/css/multibox.css"/>
<script type="text/javascript" src="<%=renderResponse.encodeURL(renderRequest.getContextPath())%>/_Feedback/multibox/js/mootools-1.2.4-core-yc.js"></script>
<script type="text/javascript" src="<%=renderResponse.encodeURL(renderRequest.getContextPath())%>/_Feedback/multibox/js/mootools-1.2.4.4-more-yc.js"></script>
<script type="text/javascript" src="<%=renderResponse.encodeURL(renderRequest.getContextPath())%>/_Feedback/multibox/js/overlay.js"></script>
<script type="text/javascript" src="<%=renderResponse.encodeURL(renderRequest.getContextPath())%>/_Feedback/multibox/js/multibox.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){
//call multiBox
var initMultiBox = new multiBox({
mbClass: '.mb',//class you need to add links that you want to trigger multiBox with (remember and update CSS files)
container: $(document.body),//where to inject multiBox
descClassName: 'multiBoxDesc',//the class name of the description divs
path: './_Feedback/multibox/files/',//path to mp3 and flv players
useOverlay: true,//use a semi-transparent background. default: false;
maxSize: {w:600, h:400},//max dimensions (width,height) - set to null to disable resizing
addDownload: false,//do you want the files to be downloadable?
pathToDownloadScript: './_Feedback/multibox/js/forceDownload.asp',//if above is true, specify path to download script (classicASP and ASP.NET versions included)
addRollover: true,//add rollover fade to each multibox link
addOverlayIcon: true,//adds overlay icons to images within multibox links
addChain: true,//cycle through all images fading them out then in
recalcTop: true,//subtract the height of controls panel from top position
addTips: true,//adds MooTools built in 'Tips' class to each element (see: http://mootools.net/docs/Plugins/Tips)
autoOpen: 0//to auto open a multiBox element on page load change to (1, 2, or 3 etc)
});
});
</script>
<!-- Copy code above -->
<!-- Styles -->
<style type="text/css">
body{
font-family:Arial;
}
</style>
<!-- Styles -->
</head>
<body style="width:800px; margin:30px auto 0 auto; color:#555;">
<div style="clear:both; height:0; line-height:0; overflow:hidden"></div>
<%
String strURL = PortletURLHelper.generateSinglePortletRenderURL(params, null, null, renderRequest, renderResponse);
%>
<a href='<%=strURL%>' id="mb11" class="mb" title="This is shown when hover the link and as a title for multibox dialog" rel="width:600,height:400">This is the link which opens multibox dialog</a>
<div class="multiBoxDesc mb11 mbHidden">This is shown as description (subtitle) for multibox dialog</div>
</body>
Notes:
- /Feedback/WebContent/_Feedback/multibox/files/feedbackform.jsp is just the JSP based on multibox bundled HTML page (blank.htm file), that is going to be shown inside the multibox dialog.
- This uses the library attached in the article Portal 6.1 and 7.0 Advanced URL Generation Helper classes (thanks to @udo-held for the link).
- Contents of multibox zip file were extracted to /Feedback/WebContent/_Feedback, keeping file structure.