Portlet: JSP page redirection

Status
Nicht offen für weitere Antworten.
J

JJ

Gast
Servus an alle

Also lerne gerade über portlets und hab da son kleines problem. Ich benutze WebSphere Portal server 6.0 und RAD.

Ich kriege es einfach net hin von der View.jsp aus per <jsp:forward page=""> eine andere seite als output zu geben.
Ist ein sehr einfaches problem deshalb regt es mich ja auch so auf. Naja.

Code:
<%@page session="false" contentType="text/html" pageEncoding="ISO-8859-1" import="java.util.*,javax.portlet.*,de.changepage.*" %>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>

<%
de.changepage.ChangePagePortletSessionBean sessionBean = (de.changepage.ChangePagePortletSessionBean)renderRequest.getPortletSession().getAttribute(de.changepage.ChangePagePortlet.SESSION_BEAN);
%>	


<%
	String formText = sessionBean.getFormText();
%>

<table border="1" width=400>
	<tr>
		<td width="300" height=100 align="center">
		<form action="<portlet:actionURL/>" method="POST">
		First name: 

		<input type="text" name="<%=de.changepage.ChangePagePortlet.FORM_TEXT%>">
		</td>
		<td width="300" height=100 align="center">Firstname:<font color="red"><%=formText%></font></td>
	</tr>
	<tr>
		<td width="300" height=100 align="center">even more</td>
		<td width="300" height=100 align="center"><input name="<%=de.oliver.changepage.ChangePagePortlet.FORM_SUBMIT%>" type="submit" value="Submit"></form></td>
	</tr>
</table>


<%
        if( formText.length()>0 ) {
		%>
<jsp:forward page="Output.jsp" />
<%
		}
%>

Also das ist die standard View.jsp. <jsp:forward page="Output.jsp" /> funktioniert nicht. Also mit <jsp:include funktioniert es aber will halt net includen sondern ne andere seite aufrufen.

Hier das Portlet:
Code:
import java.io.*;
import java.util.*;
import javax.portlet.*;

public class ChangePagePortlet extends GenericPortlet {

	public static final String JSP_FOLDER    = "/_ChangePage/jsp/";    // JSP folder name

	public static final String VIEW_JSP      = "ChangePagePortletView";         // JSP file name to be rendered on the view mode
	public static final String SESSION_BEAN  = "ChangePagePortletSessionBean";  // Bean name for the portlet session
	public static final String FORM_SUBMIT   = "ChangePagePortletFormSubmit";   // Action name for submit form
	public static final String FORM_TEXT     = "ChangePagePortletFormText";     // Parameter name for the text input
	public static final String OUTPUT		 = "Output";

	public void init() throws PortletException{
		super.init();
	}

	
	public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
		// Set the MIME type for the render response
		response.setContentType(request.getResponseContentType());

		// Check if portlet session exists
		ChangePagePortletSessionBean sessionBean = getSessionBean(request);
		if( sessionBean==null ) {
			response.getWriter().println("[b]NO PORTLET SESSION YET[/b]");
			return;
		}

		// Invoke the JSP to render
		PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(getJspFilePath(request, VIEW_JSP));
		rd.include(request,response);
	}

	public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException {
		if( request.getParameter(FORM_SUBMIT) != null ) {
			// Set form text in the session bean
			ChangePagePortletSessionBean sessionBean = getSessionBean(request);
			if( sessionBean != null )
				sessionBean.setFormText(request.getParameter(FORM_TEXT));				
		}
	}

	private static ChangePagePortletSessionBean getSessionBean(PortletRequest request) {
		PortletSession session = request.getPortletSession();
		if( session == null )
			return null;
		ChangePagePortletSessionBean sessionBean = (ChangePagePortletSessionBean)session.getAttribute(SESSION_BEAN);
		if( sessionBean == null ) {
			sessionBean = new ChangePagePortletSessionBean();
			session.setAttribute(SESSION_BEAN,sessionBean);
		}
		return sessionBean;
	}

	
	private static String getJspFilePath(RenderRequest request, String jspFile) {
		String markup = request.getProperty("wps.markup");
		if( markup == null )
			markup = getMarkup(request.getResponseContentType());
		return JSP_FOLDER + markup + "/" + jspFile + "." + getJspExtension(markup);
	}

	private static String getMarkup(String contentType) {
		if( "text/vnd.wap.wml".equals(contentType) )
			return "wml";
        else
            return "html";
	}

	
	private static String getJspExtension(String markupName) {
		return "jsp";
	}

}

Für jede hilfe bin ich sehr dankbar.
 

jPat

Bekanntes Mitglied
evtl:

<%@ taglib prefix="c" uri="../../WEB-INF/c.tld" %>
<c:import url="blub/ber" />
 
J

JJ

Gast
Ja vielleicht, will aber keine taglibs probieren (Erstmals). Es müsste auch ohne gehen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben