WEB-INF/classes/example/HelloWorldPortlet.java
package example;
import java.io.IOException;
import java.io.PrintWriter;
import javax.portlet.*;
public class HelloWorldPortlet extends GenericPortlet {
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException
{
PortletMode mode = request.getPortletMode();
if (mode.equals(PortletMode.EDIT)) {
// get the values submitted with the form
String identity = request.getParameter("identity");
String color = request.getParameter("color");
// set the values of the render parameters
response.setRenderParameter("identity",identity);
response.setRenderParameter("color",color);
// switch to View mode
response.setPortletMode(PortletMode.VIEW);
}
}
public void render(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
PortletMode mode = request.getPortletMode();
// prepare objects in common with all modes and store them
// as request attributes
prepareObjects(request, response);
if (mode.equals(PortletMode.EDIT)) {
doEdit(request,response);
}
else {
doView(request,response);
}
}
/**
* Set's the following request attributes:
* <dl>
* <dt>identity
* <dd>the identity
* <dt>color
* <dd>the color
* </dl>
*/
protected void prepareObjects(RenderRequest request, RenderResponse response)
{
String identity = request.getParameter("identity");
if (identity == null)
identity = "World";
String color = request.getParameter("color");
if (color == null)
color = "silver";
request.setAttribute("identity",identity);
request.setAttribute("color",color);
}
protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
String identity = (String) request.getAttribute("identity");
String color = (String) request.getAttribute("color");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Hello, " + identity + ".");
out.println("Your favorite color is " + color);
PortletURL editUrl = response.createRenderURL();
editUrl.setPortletMode(PortletMode.EDIT);
out.println("<p>");
out.println("<a href='" + editUrl + "'>Edit</a>");
}
protected void doEdit(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
String identity = (String) request.getAttribute("identity");
String color = (String) request.getAttribute("color");
PortletURL submitUrl = response.createActionURL();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<form method='POST' action='" + submitUrl + "'>");
out.println("Name:");
out.println("<input type='text' name='identity' value='" + identity + "'>");
out.println("<br>");
out.println("Color:");
out.println("<input type='text' name='color' value='" + color + "'>");
out.println("<br>");
out.println("<input type='submit'");
out.println("</form>");
}
public void destroy()
{
}
}