<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
A másik módosítás, hogy az Eclipse projekt build path-jébe fel kell venni a JSTL lib-eket, de ezek nem lehetnek az alap JSTL könyvtárak, hanem a telepített plugin könyvtárban lévőket kell használnunk. Ezeket másoljuk a WEB-INF\lib könyvtárba és adjuk az Eclipse build path-hez a projektben.
\plugins\com.google.appengine.eclipse.sdkbundle_1.5.4.r37v201109211906\appengine-java-sdk-1.5.4\lib\tools\jsp\repackaged-appengine-jakarta-jstl-1.1.2.jar \plugins\com.google.appengine.eclipse.sdkbundle_1.5.4.r37v201109211906\appengine-java-sdk-1.5.4\lib\tools\jsp\repackaged-appengine-jakarta-standard-1.1.2.jarhttp://someprog.blogspot.com/2010/08/google-app-engine-can-not-find-tag.html
Az átalakítás után az alap belépési ponton két irányba irányítjuk át a request-et: home és user.
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import="com.google.appengine.api.users.UserServiceFactory"%> <% if (UserServiceFactory.getUserService().getCurrentUser() == null) { response.sendRedirect("/home.jsp"); } else { response.sendRedirect("/user/vehicles"); } %>
A home.jsp oldalról be lehet lépni és tovább lehet menni a felhasználói oldalra, ahogyan eddig is. A user/vehicles átirányítás a járműlistához megy, ha már belépett a felhasználó. A járműlista controllere a web.xml alapján a VehicleServlet, majd feldolgozás után onnan a vehicle.jsp-re ugrik.
VehicleServlet.java
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); PersistenceManager pm = null; try { pm = PMF.get().getPersistenceManager(); AppUser currentUser = UserDao.getUser(pm, user); if (currentUser == null) { currentUser = initDatabase(pm, user); } request.setAttribute("appUser", currentUser); request.getRequestDispatcher("/WEB-INF/jsp/vehicles.jsp").forward(request, response); } finally { if (pm != null) { pm.close(); } } }
A request-be tesszük az appUser-t, átirányítjuk a megjelenítő oldalra, majd a JSP lapon kivesszük a járműveit és azok bejegyzéseit.
vehicles.jsp
A megjelenített adatok halmazának szebb ábrázolása miatt CSS elemeket is használok, így a JSP lapot nem kell telepakolni style elemekel. A létrejött fájlok nagy száma miatt átcsoportosítottam az elemeket, így külön mappába kerülnek a css és a js elemek is. A JSP lapok is kéttéválnak, ezért a gyökérben lesznek a publikus lapok, a WEB-INF\jsp mapában pedig a közvetlenül nem elérhető lapok. Ez utóbbiakat a szervleteken keresztül lehet elérni, így mindig a megfelelő adat is rendelkezésre fog állni.
A frissített kód itt elérhető, a módosítások eredménye pedig ez lett:
Nincsenek megjegyzések:
Megjegyzés küldése