PDA

View Full Version : [JSP] actionURL


gepeppe
19-02-2010, 11:40
Salve, stò sviluppando una portlet, e vorrei creare, in una pagina jsp, un form con un tasto INVIO. Quindi devo creare un actionURL in modo tale che questo punti alla mia portlet.

NElla portlet, e precisamente nel metodo processAction eseguo solo dei semplici comandi. Questa è la mia implementazione FUNZIONANTE senza pagina JSP:

public void processAction(ActionRequest request, ActionResponse response) throws PortletException,IOException {

//semplice controllo per capire da quale form viene la richiesta
String COMMAND = request.getParameter("COMMAND");

if("primo".equals(COMMAND)){

//funzione generica, già testata e funzionante
funziona();
}
}

public void doView(RenderRequest request,RenderResponse response) throws PortletException,IOException {
PortletURL link = response.createActionURL();

//questa riga mi dice che il parametro command associato a questo form ha valore "primo"
link.setParameter("COMMAND", "primo");

Writer writer = response.getWriter();

writer.write("<form action=");

writer.write("\"");

writer.write(link.toString());

writer.write("\"");

writer.write("method=POST enctype=\"multipart/form-data\">");

writer.write("<input type=submit value=OK name=okButton_1 />");

writer.write("</form>");
}


Questo è il codice funzionante. Io vorrei che il codice presente nella doView venga spostato nella JSP... Quindi all'interno della doView andrà solo questo codice:
response.setContentType("text/html");
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/WEB-INF/jsp/WebApplication1_view.jsp");
dispatcher.include(request, response);

Ma nella JSP cosa devo mettere???..ho visto alcuni siti internet, ma non funziona...

grazie

gepeppe
19-02-2010, 12:30
ok risolto...si doveva implementare cosi:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%-- Uncomment below lines to add portlet taglibs to jsp--%>


<%@ page import="javax.portlet.*"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>

<portlet:defineObjects />



<form action="<portlet:actionURL><portlet:param name='COMMAND' value='primo'/>
</portlet:actionURL>" method="POST" enctype="multipart/form-data">

<input type="submit" value="Submit Job" name="COMMAND" onclick="<portlet:renderURL></portlet:renderURL>"/>
</form>



questo è il codice della JSP