The following example contains the class file for the sample PrefPortlet.
package examples;
import javax.portlet.GenericPortlet;
import javax.portlet.ActionRequest;
import javax.portlet.RenderRequest;
import javax.portlet.ActionResponse;
import javax.portlet.RenderResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletURL;
import javax.portlet.PortletMode;
import javax.portlet.PortletPreferences;
import javax.portlet.WindowState;
import java.io.IOException;
import java.io.PrintWriter;
public class PrefPortlet extends GenericPortlet {
public void processAction(ActionRequest request, ActionResponse response)
throws PortletException {
// process the salutation set by the user in the edit mode.
String salutation = request.getParameter("SALUTATION");
try {
PortletPreferences pref = request.getPreferences();
pref.setValue("salutation", salutation);
pref.store();
} catch (Exception e) {
throw new PortletException(e.getMessage());
}
// return the user back to the view mode and normal state
response.setPortletMode(PortletMode.VIEW);
response.setWindowState(WindowState.NORMAL);
}
public void doView(RenderRequest request,RenderResponse response)
throws PortletException,IOException {
// displays the salutation stored in the preference.
PortletPreferences pref = request.getPreferences();
String salutation = pref.getValue("salutation","");
response.setContentType(request.getResponseContentType());
PrintWriter writer = response.getWriter();
writer.write("Hello " + salutation);
}
public void doEdit(RenderRequest request,RenderResponse response)
throws PortletException,IOException {
PortletURL actionURL = response.createActionURL();
response.setContentType(request.getResponseContentType());
PrintWriter writer = response.getWriter();
writer.print("<form method=\"post\" action=\"" + actionURL.toString());
writer.println("\">");
writer.println("<center><p>Salutation: <input type=\"text\" name=\"salutation\"></p>");
writer.println("<input type=\"submit\" value=\"Submit\">");
writer.println("</form>");
}
public void doHelp(RenderRequest request, RenderResponse response)
throws PortletException {
response.setContentType(request.getResponseContentType());
try {
response.setContentType(request.getResponseContentType());
PrintWriter writer = response.getWriter();
writer.write("Pref Portlet Help<p><p>");
} catch (IOException e) {
throw new PortletException("PrefPortlet.doHelp exception", e);
}
}
}
|