Tvorba informačních systémů

Podobné dokumenty
Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Aplikační rámce Jakarta Struts Framework

Aplikační rámce. Jakarta Struts Framework. Obsah přednášky. Aplikační rámce a knihovny. Co je to aplikační rámec? Enterprise Java Beans

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

UJO Framework. revoluční architektura beans. verze

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

KTE / ZPE Informační technologie

KIV/PIA 2013 Jan Tichava

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Databázové a informační systémy

(X)HTML, CSS a jquery

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Úvod do programovacích jazyků (Java)

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Úvod do programovacích jazyků (Java)

JavaServer Faces Zdeněk Troníček

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Komponenty v.net. Obsah přednášky

Internet 2 css, skriptování, dynamické prvky

Úvod do tvorby internetových aplikací

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

RMI - Distribuované objekty v Javě

MBI - technologická realizace modelu

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Elektronická podpora výuky předmětu Komprese dat

Architektury informačních systémů

Softwarové komponenty a Internet

Architektury informačních systémů

Java - výjimky. private void vstup() throws IOException {... }

Úvod do programovacích jazyků (Java)

Java technologie pro webové aplikace

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Typ 2 - připojení prostřednictvím kódu nativního klienta pro přístup k síti

Tvorba informačních systémů

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Programování v C++ 2, 4. cvičení

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

Vytváření a použití knihoven tříd

Tvorba informačních systémů

Vývoj aplikací řízený testy. Miroslav Beneš

KIV/PIA Semestrální práce

Abstraktní datové typy: zásobník

Java a Caché IV: Manipulace s objekty

X33EJA Enterprise Java

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Formuláře. Internetové publikování. Formuláře - příklad

Čipové karty Lekařská informatika

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Datová vrstva informačního systému. Java Database Connectivity JDBC. Obsah přednášky JDBC. Datová vrstva informačního systému

Základy programování v jazyce JAVA

Úvod do Javy, JDBC a multimediální databáze

4. lekce Přístup k databázi z vyššího programovacího jazyka

Spring framework 2.0. Roman Pichlík CZJUG

1 Webový server, instalace PHP a MySQL 13

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Architektura aplikace

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Oracle XML DB. Tomáš Nykodým

Aplikace s grafickým uživatelským rozhraním

Instalace a konfigurace web serveru. WA1 Martin Klíma

!!Via!AUREA,!s.r.o.!

RMI Remote Method Invocation

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Java a XML. 10/26/09 1/7 Java a XML

Úvod do aplikací internetu a přehled možností při tvorbě webu

Návrhové vzory pro J2EE

X36WWW. Technologie aplikačních serverů. Miroslav Bureš,, Martin Klíma. X36WWW: 12. přednáška 1

ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Transkript:

Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/46

Obsah 6. Aplikační rámec Struts II,, Šablony, Výjimky, Validace vstupu. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 2/46

6. Aplikační rámec Struts II Strategie spojení s databází: Otevřít spojení pro každý požadavek, vykonat jej a pak spojení zrušit. Otevřít spojení pro každého uživatele a uchovávat jej v rámci session. Sdílet "pool" otevřených spojení mezi všemi uživateli. Struts udržuje tzv. connection pool (implementace třetí strategie). c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 3/46

Příklad, datové zdroje 1/3 struts-config.xml: <data sources> <data source type= " org. apache. tomcat. dbcp. dbcp. BasicDataSource " > <set p r o p e r t y p r o p e r t y = " driverclassname " value= "com. mysql. jdbc. D r i v e r " / > <set p r o p e r t y p r o p e r t y = " u r l " value= " j d b c : m y s q l : / / linux456. vsb. cz / t i s " / > <set p r o p e r t y p r o p e r t y = " username " value= " t i s " / > Pozor na nekompatibilitu typu datových zdrojů (hodnota atributu type elementu data-source). c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 4/46

Příklad, datové zdroje 2/3 <set p r o p e r t y p r o p e r t y = " password " value= " " / > <set p r o p e r t y p r o p e r t y = " maxactive " value= " 10 " / > <set p r o p e r t y p r o p e r t y = " maxwait " value= " 5000 " / > <set p r o p e r t y p r o p e r t y = " defaultautocommit " value= " f a l s e " / > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 5/46

Příklad, datové zdroje 3/3 <set p r o p e r t y p r o p e r t y = " defaultreadonly " value= " f a l s e " / > <set p r o p e r t y p r o p e r t y = " v a l i d a t i o n Q u e r y " value= "SELECT COUNT( ) FROM students " / > < / data source> < / data sources> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 6/46

6. Aplikační rámec Struts II Po inicializaci bude connection pool uložen jako contextová proměnná servletu pod jménem specifikovaném atributem key. Implicitní název je Action.DATA_SOURCE_KEY. DataSource datasource = (DataSource) servlet.getservletcontext().getattribute( Action.DATA_SOURCE_KEY); Před začátkem práce s databází je nutné datový zdroj otevřít: datasource.open(). c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 7/46

6. Aplikační rámec Struts II Je vytvořen počet spojení odpovídající mincount, podle potřeby jsou vytvářena další spojení až do počtu maxcount. Po provedení dotazu je nutné volat datasource.getconnection().close() Neuzavřeme spojení s databází, pouze vrátíme spojení do poolu. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 8/46

Příklad, datové zdroje 1/2 Třída rozšiřující org.apache.struts.action.action. javax. s q l. DataSource datasource ; java. s q l. Connection connection= n u l l ; t r y { datasource = getdatasource ( request ) ; connection = datasource. getconnection ( ) ; Statement stmt = connection. createstatement ( ) ; ResultSet r s t = stmt. executequery ( " s e l e c t from person " ) ; while ( r s t. next ( ) ) { System. out. p r i n t l n ( r s t. g e t S t r i n g ( "name" ) ) ; } r s t. close ( ) ; c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 9/46

Příklad, datové zdroje 2/2 stmt. close ( ) ; } catch ( SQLException sqle ) { g e t S e r v l e t ( ). log ( " Connection. process ", sqle ) ; } f i n a l l y { t r y { connection. close ( ) ; } catch ( SQLException e ) { g e t S e r v l e t ( ). log ( " Connection. close ", e ) ; } } c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 10/46

1/2 6. Aplikační rámec Struts II zobrazovaných textů chybové zprávy, texty v uživatelském rozhraní. Nastavení struts-config.xml: <message-resources parameter="messageresources"/> jsp: <html:html locale= true > Automatický výběr podle nastavení klienta MessageResources.properties MessageResources_en_US.properties MessageResources_cs_CZ.properties c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 11/46

2/2 6. Aplikační rámec Struts II JSP <h1><bean:message key="jcms.login"/></h1> Není nutné definovat všechny zprávy <message-resources parameter="messageresources" null="false"/> MessageResources MessageResources_en_US.properties: jcms.login = login MessageResources_cs_CZ.properties: jcms.login = Uživatelské jméno c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 12/46

- jcms.jsp c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 13/46

- klient cs_cz c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 14/46

- klient en_us c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 15/46

, poznámky Nevýhody popsané lokalizace je řízena nastavením klienta. Často budeme chtít lokalizaci realizovat výběrem jazyka klientem ve webové aplikaci implementace vlastních uživatelských značek. Localizace tlačítka na stránce < html:submit> <bean:message key= " button. submit " / > < / html:submit> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 16/46

Šablony - knihovna značek Tiles Sada značek JSP Oddělení formátu stránky od obsahu. Možnost změny formátu nastavení vzhledu uživatelem. Opakovaně použitelné definice šablona parametrizovaná stránka, instance šablony konkrétní obsah. Umožňuje dynamické vytváření stránky při předávání stránky klientovi. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 17/46

Příklad 1/4, Tiles, index-tiles.jsp Vložení instance šablony. <%@ t a g l i b u r i = " /WEB INF / s t r u t s t i l e s. t l d " p r e f i x = " t i l e s " %> < t i l e s : i n s e r t page= " / l a y o u t. j s p " f l u s h = " t r u e " > < t i l e s : p u t name= " t i t l e " value= " T i t l e " / > < t i l e s : p u t name= " header " value= " / header. j s p " / > < t i l e s : p u t name= " f o o t e r " value= " / f o o t e r. j s p " / > < t i l e s : p u t name= "menu" value= " / menu. j s p " / > < t i l e s : p u t name= " body " value= " / body. j s p " / > < / t i l e s : i n s e r t > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 18/46

Příklad 2/4, Tiles, layout.jsp 1/2 Definice vzhledu. <%@ t a g l i b u r i = " /WEB INF / s t r u t s t i l e s. t l d " p r e f i x = " t i l e s " %> <html > <head> < t i t l e >< t i l e s : g e t A s S t r i n g name= " t i t l e " / >< / t i t l e > < / head> <body> < t a b l e width="100%" > < t r > < td colspan= " 2 " > < t i l e s : i n s e r t a t t r i b u t e = " header " / > < / td>< / t r > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 19/46

Příklad 3/4, Tiles, layout.jsp 2/2 < t r > < td width=" 120 " > < t i l e s : i n s e r t a t t r i b u t e = "menu" / > < / td> < td> < t i l e s : i n s e r t a t t r i b u t e = " body " / > < / td>< / t r > < t r > < td colspan= " 2 " >< t i l e s : i n s e r t < / t r > < / t a b l e > < / body> < / html> a t t r i b u t e = " f o o t e r " / >< / td> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 20/46

Příklad 4/4, Tiles 6. Aplikační rámec Struts II c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 21/46

Cascading Style Sheets (CSS) Oddělení obsahu od prezentace HTML. http://www.w3.org/style/css Definice vzhledu pomocí atributů značek. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 22/46

Příklad, CSS, html soubor <!DOCTYPE HTML PUBLIC " //W3C/ / DTD HTML 3. 2 / /CZ" > <html > <head> < t i t l e >Tvorba informacnich systemu< / t i t l e > <meta name= "AUTHOR" CONTENT= " Michal Kratky " > <meta http equiv= " Content Type " content=" t e x t / html ; charset=iso 8859 2" > < l i n k r e l = " s t y l e s h e e t " type= " t e x t / css " h r e f = " s t y l e. css " > < / head> <body> <h1>tvorba informacnich systemu< / h1> < d i v class= r i g h t >Text< / d i v >... c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 23/46

Příklad, CSS, style.css body { background c o l o r : #d5d5d5 ; c o l o r : b l a c k ; font f a m i l y : A r i a l ; } h1 { font f a m i l y : A r i a l Black ; font s i z e : 25 pt ; c o l o r : blue ; t e x t a l i g n : c e n t e r ; } d i v { font f a m i l y : A r i a l ; c o l o r : black ; t e x t a l i g n : j u s t i f y ; } d i v. r i g h t { font f a m i l y : A r i a l Black ; c o l o r : blue ; font s i z e : 12 pt ; t e x t a l i g n : r i g h t ; margin: 1mm } th { background c o l o r : #aabbcc ; c o l o r : w h i t e ; t e x t a l i g n : l e f t ; } a : l i n k { c o l o r : g r e e n ; t e x t decoration:none ; } a : v i s i t e d { c o l o r : b l u e ; t e x t decoration:none ; }... c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 24/46

Zachytávání výjimek Ošetření vstupu. Deklaratorní zachytávání výjimek - pomocí konfiguračních souborů, bez zásahu do zdrojových kódů. Příklad: c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 25/46

Příklad, přesměrování index.jsp: <%@ t a g l i b u r i = " / tags / s t r u t s l o g i c " p r e f i x = " l o g i c "%> < l o g i c : r e d i r e c t forward= " compute " / > WEB-INF/struts-config.xml: <global forwards>... <forward name= " compute " path= " / compute. j s p " / >... < / global forwards> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 26/46

Příklad, compute.jsp 1/3 <%@ page language= " java " contenttype= " t e x t / html ; charset=windows 1250" %> <%@ t a g l i b u r i = " / tags / s t r u t s html " p r e f i x = " html " %> <%@ t a g l i b u r i = " / tags / s t r u t s bean " p r e f i x = " bean " %> <%@ t a g l i b u r i = " / tags / s t r u t s l o g i c " p r e f i x = " l o g i c " %> < h t m l : h t m l l o c a l e = " t r u e " > <head> < t i t l e >Ukazkova aplikace, TIS 2008< / t i t l e > < / head> <body bgcolor=" white " > <h1>jcms< / h1> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 27/46

Příklad, compute.jsp 2/3 < l o g i c : p r e s e n t name= " computepower " > <bean:message key= " computepower. r e s u l t " / > : < b e a n : w r i t e name= " computepower " p r o perty=" r e s u l t " / > < / l o g i c : p r e s e n t > < html:form a c t i o n = " solve. do " > < t a b l e > < t r > < td><bean:message key= " computepower. exponent " / > : < / td> < td> < h t m l : t e x t name= " ComputePowerForm " p r operty=" exponent " / > < / td> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 28/46

Příklad, compute.jsp 3/3 < t r > < td>< html:submit / >< / td> < / t r > < / t a b l e > < / html:form> < / body> < / h t m l : h t m l > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 29/46

Příklad, registrace FormBean struts-config.xml <form beans>... <form bean name= " ComputePowerForm " type= " jcms. form. ComputePowerForm " / >... < / form beans> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 30/46

Příklad, FormBean - ComputePowerForm package jcms. form ; import org. apache. s t r u t s. a c t i o n. ActionForm ; public class ComputePowerForm extends ActionForm { private S t r i n g exponent ; } public ComputePowerForm ( ) { } public void setexponent ( S t r i n g exp ) { exponent = exp ; } public S t r i n g getexponent ( ) { return exponent ; } c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 31/46

Příklad, Model - ComputePower package jcms. common ; public class ComputePower { private i n t exponent ; private i n t r e s u l t ; } public ComputePower ( ) { } public void setexponent ( i n t exp ) { exponent = exp ; } public i n t getexponent ( ) { return exponent ; } public void setresult ( i n t res ) { } public void docompute ( ) { r e s u l t = ( i n t ) Math. pow ( 2, exponent ) ; } public i n t getresult ( ) { return r e s u l t ; } c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 32/46

Příklad, přiřazení akce k FormBean struts-config.xml <action mappings>... < a c t i o n path= " / solve " type= " jcms. a c t i o n. ComputePowerAction " name= " ComputePowerForm " scope= " request " / >... < / action mappings> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 33/46

Příklad, Controller - ComputePowerAction 1/2 package jcms. a c t i o n ; import javax. s e r v l e t. h t t p. HttpServletRequest ; import javax. s e r v l e t. h t t p. HttpServletResponse ; import javax. s e r v l e t. h t t p. HttpSession ; import org. apache. s t r u t s. a c t i o n. ; import jcms. common. ; import jcms. form. ; public class ComputePowerAction extends A c t i o n { public ActionForward execute ( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) { c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 34/46

Příklad, Controller - ComputePowerAction 2/2 ComputePowerForm powercomputeform = ( ComputePowerForm ) form ; S t r i n g exponent = powercomputeform. getexponent ( ) ; ComputePower computepower = new ComputePower ( ) ; computepower. setexponent ( I n t e g e r. p a r s e I n t ( exponent ) ) ; computepower. docompute ( ) ; } } request. s e t A t t r i b u t e ( " computepower ", computepower ) ; return mapping. findforward ( " compute " ) ; c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 35/46

Příklad 6. Aplikační rámec Struts II c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 36/46

Příklad, deklaratorní zpracování výjimek struts-config.xml <global exceptions>... <exception key= " exception. f a t a l " path= " / compute. j s p " scope= " request " type= " java. lang. Exception " / >... < / global exceptions> Při chybném vstupu je uživateli předán prázdný formulář. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 37/46

Příklad, compute.jsp... < / l o g i c : p r e s e n t > < h t m l : e r r o r s / > < html:form a c t i o n = " solve. do " >... MessageResource_en_US.properties: exception.fatal = Error Input! c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 38/46

Příklad 6. Aplikační rámec Struts II c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 39/46

Deklaratorní zpracování výjimek v rámci akce struts-config.xml <action mappings> < a c t i o n path= " / solve " type= " jcms. a c t i o n. ComputePowerAction " name= " ComputePowerForm " scope= " request " > <exception key= " exception. f a t a l " path= " / compute. j s p " type= " java. lang. Exception " / > < / a c t i o n > < / action mappings> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 40/46

Zachycení výjimky v rámci akce, ComputePowerAction... t r y {... computepower. setexponent ( I n t e g e r. p a r s e I n t ( exponent ) ) ;... } catch ( NumberFormatException e ) { A c t i o n E r r o r s e r r o r s = new A c t i o n E r r o r s ( ) ; e r r o r s. add ( A c t i o n E r r o r s.global_error, new A c t i o n E r r o r ( " e r r o r. f a t a l " ) ) ; saveerrors ( request, e r r o r s ) ; }... c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 41/46

Validace vstupu 6. Aplikační rámec Struts II struts-config.xml <action mappings> < a c t i o n path= " / solve " type= " jcms. a c t i o n. ComputePowerAction " name= " ComputePowerForm " scope= " request " > v a l i d a t e = " t r u e " i n p u t = " / compute. j s p " > <exception key= " exception. f a t a l " path= " / compute. j s p " type= " java. lang. Exception " / > < / a c t i o n > < / action mappings> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 42/46

Validace vstupu, ComputePowerForm... p u b l i c A c t i o n E r r o r s v a l i d a t e ( ActionMapping mapping, HttpServletRequest request ) { A c t i o n E r r o r s e r r o r s = new A c t i o n E r r o r s ( ) ; t r y { I n t e g e r. p a r s e I n t ( exponent ) ; } catch ( NumberFormatException e ) { e r r o r s. add ( A c t i o n E r r o r s.global_error, new A c t i o n E r r o r ( " e r r o r. f a t a l " ) ) ; } r e t u r n e r r o r s ; }... c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 43/46

Validace vstupu - plugin Validate validation.xml <form v a l i d a t i o n > <formset>... < / formset> < / form v a l i d a t i o n > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 44/46

Ukázková aplikace 6. Aplikační rámec Struts II http://www.cs.vsb.cz/kratky/courses/2007-08/tis/ exam/exam6/jcmswebapp3.zip c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 45/46

Reference 6. Aplikační rámec Struts II Struts - http://struts.apache.org/ CSS - http://www.w3.org/style/css Tiles - http://www.lifl.fr/dumoulin/tiles/index.html c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 46/46