Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification.
The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsQuickStartServletJSP New page: == Employee list with pure Servlet + JSP (Model 2) == One can argue that JSTL 2.0 greatly simplifies access to dynamic data from JSP, therefore pure JSP applications look less cluttered. Nevertheless, Model 2 allows additional benefits. With Model 2 approach, the data-preparation code is located in a servlet, while JSP performs purely presentation tasks. This makes JSP pages smaller, cleaner and simpler. Also, a servlet may easily replace one presentation with another by changing the name of a JSP page it forwards too. Overall design is more structured. Here is how the servlet would look like: {{{public class EmployeeListServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { HttpSession session = request.getSession(); // Prepare data for output if (session.getAttribute("employees") == null) { session.setAttribute("employees", EmployeeManager.loadEmployees()); } // Forward to the JSP page that renders employee list String view = "/jspservlet/employees.jsp"; RequestDispatcher rd = getServletContext().getRequestDispatcher(view); rd.forward(request, response); } } }}} The request is processed by the servlet, then the servlet forwards to "/jspservlet/employees.jsp" page, which displays the result: {{{<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <body> <table> <tr> <th align="left">Emp #</th> <th align="left">Name</th> <th align="left">Salary</th> </tr> <c:forEach var="employee" items="${employees}"> <tr> <td>${employee.id}</td> <td>${employee.name}</td> <td>${employee.salary}</td> </tr> </c:forEach> </table> </body> </html>}}}
