Model – View - Controler STRUTS
Co to jest MVC ? MVC to model rozdzielający aplikację na trzy odzielne warstwy. Logiki Prezencji Kontroli/Sterowania
Co nam daje MVC? Odzielenie logiki systemu od warstwy prezencji Zmniejsza powtarzanie się kodu Centralizuje kontrole Pozwala na łatwiejsze wprowadzanie zmian
Na czym polega MVC (Model1) ?
Na czym polega MVC (Model2) ?
Struts Warstwa Model Warstwa View Warstwa Controller
Struts Warstwa Model
Struts – warstwa Model Logika systemu Java Beans Enterprise Java Beans public class Book { private String title = ""; private int pages = 0; public void setTitle(String title) { this.title = title; }
Struts – warstwa Model Cd. public String getTitle() { return this.title; } public void setPages(int pages) { this.pages = pages; } public int getPages() { return this.pages; } }
Struts – warstwa Model Obiekt ActionForm Jest tworzona na każdy formularz w aplikacji Jest odpowiedzialna za: Sprawdzenie czy odpowiedni JavaBean jest stworzony, jeśli nie tworzy nową instancję Sprawdzenie wprowadzonych danych (validate) Controller aplikacji, przekazuje obiekt do funckji perform() klasy Action
Struts Warstwa View
Struts – warstwa View Internacjionalizacja ApplicationResources.properties main.title=Hello ApplicationResources_pl.properties main.title=Witam Struts-config.xml : <message-resources parameter="ApplicationResources" null="false" />
Struts – warstwa View Custom Tags <%@ taglib uri="/WEB-INF/struts- bean.tld" prefix=" bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <bean:message key=„mian.title”/> <html:form action="createBook.do" method="GET"> Title:<html:text property="title" /> <br> Pages:<html:text property="pages" /> <br> <html:submit property="submit" /> </html:form>
Struts Warstwa Controller
Struts – warstwa Controller Obsłużenie akcji wymaga Napisanie klasy rozszeżającej klase Action Klasa Action zawiera fukncje perform(), którą należy nadpisać Skonfigurowanie akcji w pliku konfiguracyjnym Struts`a struts-config.xml Dodanie odpowiednich dodatkowych komponentów wymaganych podczas akcji
Struts – warstwa Controller Elementy mapowania akcji Path – adres żądania, które wyzwala akcje Type – nazwa klasy Action obsługującej tą akcje Name – JavaBean wykorzystany przy akcji Scope – Zasięg zmiennych Input – w razie błędu, na ten adres ma być przekierowana akcja
Struts – warstwa Controller Przykład pliku struts-config.xml <struts-config> <form-beans> <form-bean name="bookForm" type="books.Book"/> </form-beans> <global-forwards> <forward name="bookCreated" path="/BookView.jsp"/> </global-forwards>
Struts – warstwa Controller Cd. <action-mappings> <action path="/createBook.do" type="books.BookAction" name="bookForm" scope="request" input="/CreateBook.jsp"> </action> </action-mappings> </struts-config>
Struts – warstwa Controller Przykład klasy Action public final class BookAction extends Action{ public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String title = (String)req.getParameter("title"); int pages = Integer.parseInt((String)req.getParameter("pages")); Book book = new Book();
Struts – warstwa Controller Cd. book.setTitle(title); book.setPages(pages); req.setAttribute("BOOK",book); return mapping.findForward("bookCreated"); }
Wykorzystane materiały http://www.java.sun.com http://www.jakarta.apache.org Introduction to struts. Roger W Barnes of Project Refinery, Inc.