import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.annotations.RenderMethod;
import javax.portlet.annotations.RenderPhase;
public class CustomPortlet extends GenericPortlet {
@RenderMethod(portletNames = {"CustomPortlet"}, renderPhase = RenderPhase.RENDER)
public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException {
}
}
<portlet>
<portlet-name>CustomPortlet</portlet-name>
<portlet-class>com.example.CustomPortlet</portlet-class>
<init-param>
<name>javax.portlet.title</name>
<value>Custom Portlet</value>
</init-param>
</portlet>
public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException {
String username = request.getPreferences().getValue("username", "Guest");
String greeting = "Hello, " + username + "!";
response.getWriter().print(greeting);
}
public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException {
response.setContentType("text/html");
PortletPreferences preferences = request.getPreferences();
String username = preferences.getValue("username", "Guest");
String greeting = "Hello, " + username + "!";
PrintWriter writer = response.getWriter();
writer.println("<form action=\"\" method=\"post\">");
writer.println("Username: <input type=\"text\" name=\"username\" value=\"" + username + "\">");
writer.println("<input type=\"submit\" value=\"Save\">");
writer.println("</form>");
writer.println("<br>");
writer.println(greeting);
}