SlideShare uma empresa Scribd logo
1 de 238
3004 Java Web Development with Struts and Tiles Ken Sipe Chief Instructor / TO Code Mentor
Presentation Goal ,[object Object],[object Object]
Presentation Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
About the Speaker ,[object Object],[object Object],[object Object],[object Object]
Understanding the JSP Models With a Quick Look at Java Web Apps
Java 2 Web Applications ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JSP Model 1 ,[object Object],Option 2 Option 1
JSP Model 1 Observation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JSP2 JSP1 JSP3 JSP4 Presentation Presentation Present. Ctrl Presentation Logic Present. Ctrl Logic Logic
JSP Model 2 ,[object Object]
Model 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],JSP2 JSP1 JSP3 Logic Control
Introduction MVC
What Is a MVC? ,[object Object],[object Object],[object Object],[object Object]
Web Application MVC Pattern ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Controller (Servlet) Model (Beans) View (JSPs) View (JSPs) View (JSPs) View (JSPs) View (JSP) 1 2 3 4 5
MVC Collaboration Diagram
Struts As a MVC Framework We Can Rebuild It. We Have the Technology.  Better… Stronger… Faster...
What Are Struts? ,[object Object],[object Object]
Struts Collaboration Diagram
ActionServlet ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
strut-config.xml ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Strut-config.xml For requests that hit URL=“/logon” The frame work will invoke execute() on an instance of class com.codementor.LogonAction Store request parameters in form variable “LogonForm” which is defined in another location in the xml document. If the logical name returned by perform() is “failure” go to page “/failure.jsp” If the Logical name returned by perform() is “success” go to “/success.jsp”  <action path=&quot; /logon “ type= “ com.codementor.LogonAction ”   name=&quot; LogonForm &quot; <forward name=&quot; failure &quot;    path=&quot; /failure.jsp &quot; />  <forward name=&quot; success &quot;    path=&quot; /success.jsp &quot; />  </action>
Action Bean ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Action class’s perform is invoked by Action Servlet
Action Form ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Strut Powered JSP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creating Your First Struts Application
Struts Installation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Steps to Building ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Steps to Building ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JSP Pages ,[object Object],[object Object],[object Object],[object Object]
Logon Page – HTML Version ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Logon Page – Struts ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Added a cool feature
Success and Failure Pages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Create Form Bean Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Form Bean Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Class Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Map The Forwards ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts in web.xml ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Sets the logging level for struts Loads ActionServlet on startup ** important if there is a JSP page which could be referenced from the Client **
Web.xml URI Mapping ,[object Object],[object Object],[object Object],[object Object]
Configure Tags ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configure WebApp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Run The WebApp
Demo
Summary ,[object Object],[object Object],[object Object],[object Object]
Questions?
Struts Fundamentals
Section Agenda ,[object Object],[object Object],[object Object]
Form Beans
Form Bean Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ActionForm Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],public class LogonForm extends ActionForm {}
FormBean Reset() Method  ,[object Object],[object Object],[object Object],[object Object]
FormBean Validate() Method ,[object Object],[object Object],[object Object],[object Object],struts-config.xml <action  path=&quot;/logon&quot;    type=&quot;com.codementor…&quot;    name=&quot;logonForm&quot;  input=&quot;/Login.jsp&quot;  scope=&quot;request&quot; /> validate=&quot;true&quot; </action-mappings> ,[object Object],[object Object],[object Object],[object Object]
ValidatorActionForm ,[object Object],[object Object],[object Object],public class LogonForm extends ValidatorActionForm {
DynaForms ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Working with DyanForms ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DynaValidatorActionForm ,[object Object],[object Object]
Actions
Action Types ,[object Object],[object Object],[object Object],[object Object],[object Object]
Action Characteristics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DispatchAction ,[object Object],[object Object],[object Object],[object Object],[object Object]
DispatchAction  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example DispatchAction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DispatchAction Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Defines the parameter used to get the action The name “action” is arbitrary, could be anything
When to use DispatchActions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LookupDispatchAction ,[object Object],[object Object],[object Object]
LookupDispatchAction ,[object Object],[object Object],[object Object],[object Object]
LookupDispatchAction Ex. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Maps to hashmap which maps to method to invoke This mapping occurs in the property file.
Invoke LookupDispatch ,[object Object],[object Object]
ForwardAction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TilesAction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Forwards
Local Forwards ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Global Forwards ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Forward to Actions ,[object Object],[object Object]
Forward Redirects ,[object Object],[object Object],[object Object]
Struts Configuration File
Struts Configuration File ,[object Object],[object Object],[object Object],[object Object]
Struts-Config.xml ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Data Sources ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Form Beans ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Global Exceptions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Global Forwards ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Mappings ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Controller ,[object Object],[object Object],[object Object],[object Object]
RequestProcessor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Message Resources ,[object Object],[object Object],[object Object]
Plugins ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object]
Questions?
Working Struts Tags
Section Agenda ,[object Object],[object Object],[object Object]
Common Tags
Most Common Struts Tags ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Common Non-Form Tags ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bean:Define ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bean:Define <bean:define id=“employeeList“  name=“selectEmployeesForm“ property=“employeeList“ type=&quot;java.util.Collection&quot;/> Defines a referenceable variable named employeeList which is assigned that value Of the property employeeList in the form Bean.  Collection employeeList = selectEmployeesForm.getEmployeeList();
Struts Links ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Links Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Parameterized Links ,[object Object],[object Object],[object Object],[object Object]
Parameterized Link ,[object Object],[object Object],[object Object]
Images ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
<html:img> ,[object Object],[object Object],[object Object],[object Object],[object Object]
<html:image> ,[object Object],[object Object],[object Object]
Bean:write ,[object Object],[object Object],[object Object],[object Object]
Bean:Write JSP Equivalent: <%= modelForm.getClientName() %> If the named object is an object you do not have to define a property Ex:  <bean:write name=“id” /> This commonly happens with a bean define or an id assigned in an iterator
Displaying HTML on HTML ,[object Object],[object Object]
Bean:message ,[object Object],[object Object],[object Object]
Bean:message ,[object Object],[object Object],[object Object],[object Object],[object Object]
Logic:iterate ,[object Object],[object Object],[object Object],[object Object]
Logic:iterate Example ,[object Object],[object Object],[object Object],[object Object],[object Object]
Nested Tags ,[object Object],[object Object],[object Object],[object Object],[object Object]
Nested Tags Example ,[object Object],[object Object],[object Object],[object Object],[object Object]
Nested Iterators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Working with HTML / Forms
Working with Struts Forms ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts Forms ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Submit Buttons ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Text Fields ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Combo Boxes ,[object Object],[object Object]
Combo Box ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
HTML Selects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Options for the Drop Down ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hard-Coded Options ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
String Array Options ,[object Object],[object Object],[object Object],[object Object],[object Object]
Collections Options ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Collections Options ,[object Object],[object Object],[object Object],[object Object]
Employee Class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Collections Output ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Where employeeID for the Ken object is 101 and Ken is the name
Radio Button ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<input type=“radio” name=“status” value=“Full Time” >Full Time</input> <input type=“radio” name=“status” value=“Part Time” > Part Time</input>
Check Box ,[object Object],[object Object],[object Object]
Check Box ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Multibox ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Multibox Tag ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<input type=&quot;checkbox&quot; name=&quot; benefits&quot; value=&quot;401K&quot;>401K <input type=&quot;checkbox&quot; name=&quot; benefits&quot; value=“Health&quot;>Health <input type=&quot;checkbox&quot; name=&quot; benefits&quot; value=“Dental&quot;>Dental
Multi-Box Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Multi-Box Example ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Working with Tables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tables With Nested Tags ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Produces the same results Nested Iterate tag, creates a temporary ID for us. The nested writes, use the temporary ID.
Advanced Forms
DispatchActions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dispatch JSP ,[object Object],[object Object],[object Object],[object Object],Produces a /employee.do?action=add For the add submit button
JavaScript Action Switch ,[object Object],[object Object]
Struts Classes
Struts Classes ,[object Object],[object Object],[object Object],[object Object],[object Object]
ImageButtonBean ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LabelValueBean ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LabelValueBean Ex ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RequestUtil ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BeanUtil ,[object Object],[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object]
Questions?
Struts Validation
Section Agenda ,[object Object],[object Object],[object Object]
Validation Opportunities ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Client Side Validation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Server-Side Validation
Server-Side Validation ,[object Object],[object Object],[object Object]
Validation Framework Classes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Resource Messages ,[object Object],ApplicationResources.properties file: error.username.required=Username is required error.password.required=Password is required Struts-config.xml file snip: <message-resources parameter=&quot;com.codementor.ApplicationResources&quot;  />
A Look at MessageFormat ,[object Object],[object Object],[object Object],[object Object],[object Object]
Message Format Ex. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Server-Side Validation ,[object Object],[object Object],[object Object]
Form Bean Validation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Validate() Method ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: error.username.required=Username is required error.password.required=Password is required
Validate Method ,[object Object],[object Object],[object Object]
Bean Validation Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Server-Side Validation ,[object Object],[object Object],[object Object]
Action Bean Validation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example Action Validation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Validation Framework
Validation Framework ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Validation-rules.xml ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configure Validation Example ,[object Object],[object Object],[object Object],[object Object],[object Object]
Validation.xml Username Ex ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.required={0} is required
Validation Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Application.properties File ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Property File Configuration  ,[object Object],[object Object],[object Object]
Displaying Strut Errors ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pre-Defined Validators
Pre-Defined Validators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Default Property Keys ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Default Property Keys ,[object Object],[object Object],[object Object],[object Object]
MinLength Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.minlength={0} can not be less than {1} characters.
MaxLength Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.maxlength={0} can not be greater than {1} characters.
Range Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.range={0} is not in the range {1} through {2}.
Date Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.date={0} is not a date.
Double Configuration ,[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.double={0} must be an double.
CreditCard Configuration ,[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.creditcard={0} is not a valid credit card number.
Mask Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ApplicationResources.properties file: errors.invalid={0} is invalid.
Common Masks ,[object Object],[object Object],[object Object],[object Object],[object Object]
Additional Validation Configuration Options
Using Global Constants ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],<var> <var-name>mask</var-name> <var-value>${zip}</var-value> </var>
Configure Multiple Rules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Configure a Message ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object]
Questions?
Struts Tiles
Presentation Agenda ,[object Object],[object Object]
Why Tiles ,[object Object],[object Object],[object Object],[object Object]
What is a Tile? ,[object Object],Header Footer Left Nav Body
Configuration Requirements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TilesRequestProcessor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TilesPlugin ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TilesPlugin Parameters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TilesPlugin Parameters ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creating A Tiles Definition File
Tiles Definition File ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tile Definition Tag Details ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Definition Tag – Sub Tags ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Put Tag ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Layouts
Tile Layouts ,[object Object],[object Object],Header Footer Left Nav Body Layout.jsp defines Header Footer Left Nav Body Definition in the Tile has a JSP page included for it at run time.
Define A Simple Layout ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],header footer body Layout Design
Understanding the Value of Extends
Closer Look at the Tiles Definition Extensions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Starting Definitions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tiles Definition Extension ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Abstract Definitions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Notice there is no body defined.
Abstraction Use ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Additional Configurations
Adding a Title to the Layout ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Title Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Action Forward to Tiles ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Logon Tiles Example
Layout.jsp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Header / Footer Pages ,[object Object],[object Object],[object Object],[object Object]
Login.jsp ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Success  / Failure Pages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tiles Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tiles Config ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Struts-Config.xml ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LogonForm ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LogonAction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Demo Results
Summary ,[object Object],[object Object],[object Object],[object Object]
Questions?
Thank You ,[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2
Alessandro Molina
 
JavaScript Patterns and Principles
JavaScript Patterns and PrinciplesJavaScript Patterns and Principles
JavaScript Patterns and Principles
Aaronius
 
Enterprise java beans(ejb) update 2
Enterprise java beans(ejb) update 2Enterprise java beans(ejb) update 2
Enterprise java beans(ejb) update 2
vikram singh
 
Enterprise Java Beans( E)
Enterprise  Java  Beans( E)Enterprise  Java  Beans( E)
Enterprise Java Beans( E)
vikram singh
 

Mais procurados (17)

Angular Project Report
 Angular Project Report Angular Project Report
Angular Project Report
 
01 introduction to struts2
01 introduction to struts201 introduction to struts2
01 introduction to struts2
 
Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2Rapid Prototyping with TurboGears2
Rapid Prototyping with TurboGears2
 
Jsp 01
Jsp 01Jsp 01
Jsp 01
 
Struts2
Struts2Struts2
Struts2
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Java Server Faces 1.2 presented (2007)
Java Server Faces 1.2 presented (2007)Java Server Faces 1.2 presented (2007)
Java Server Faces 1.2 presented (2007)
 
JavaScript Patterns and Principles
JavaScript Patterns and PrinciplesJavaScript Patterns and Principles
JavaScript Patterns and Principles
 
C:\fakepath\jsp01
C:\fakepath\jsp01C:\fakepath\jsp01
C:\fakepath\jsp01
 
JSP Directives
JSP DirectivesJSP Directives
JSP Directives
 
Enterprise java beans(ejb) update 2
Enterprise java beans(ejb) update 2Enterprise java beans(ejb) update 2
Enterprise java beans(ejb) update 2
 
Enterprise Java Beans( E)
Enterprise  Java  Beans( E)Enterprise  Java  Beans( E)
Enterprise Java Beans( E)
 
Best practices android_2010
Best practices android_2010Best practices android_2010
Best practices android_2010
 
A Complete Tour of JSF 2
A Complete Tour of JSF 2A Complete Tour of JSF 2
A Complete Tour of JSF 2
 
Intro to AngularJS
Intro to AngularJSIntro to AngularJS
Intro to AngularJS
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and Debugging
 
Introduction to django
Introduction to djangoIntroduction to django
Introduction to django
 

Destaque

Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014
Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014
Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014
Eleni Papadopoulou
 
20121204 are your lights on?
20121204 are your lights on?20121204 are your lights on?
20121204 are your lights on?
jasonmel
 
Single sex schools
Single sex schoolsSingle sex schools
Single sex schools
loezakareli
 

Destaque (20)

IMPM_網路留學Blog
IMPM_網路留學BlogIMPM_網路留學Blog
IMPM_網路留學Blog
 
Mayur Kumar Budha QTP
Mayur Kumar Budha QTPMayur Kumar Budha QTP
Mayur Kumar Budha QTP
 
MAN2012
MAN2012MAN2012
MAN2012
 
Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014
Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014
Exetastea didaktea ili_panelladika_exetazomenon_mathimatwn_g_lykeiou_2013_2014
 
Eurovegas
EurovegasEurovegas
Eurovegas
 
Kumpulan program-pascal
Kumpulan program-pascalKumpulan program-pascal
Kumpulan program-pascal
 
Согласные звуки в, вь, Буквы Вв
Согласные звуки в, вь, Буквы ВвСогласные звуки в, вь, Буквы Вв
Согласные звуки в, вь, Буквы Вв
 
20121204 are your lights on?
20121204 are your lights on?20121204 are your lights on?
20121204 are your lights on?
 
Μάθημα Moodle
Μάθημα MoodleΜάθημα Moodle
Μάθημα Moodle
 
Magento extension-developers-guide-v1.0
Magento extension-developers-guide-v1.0Magento extension-developers-guide-v1.0
Magento extension-developers-guide-v1.0
 
Cruz azul
Cruz azulCruz azul
Cruz azul
 
и.в.курчатов
и.в.курчатови.в.курчатов
и.в.курчатов
 
Научные книги-юбиляры. 2013 год
Научные книги-юбиляры. 2013 годНаучные книги-юбиляры. 2013 год
Научные книги-юбиляры. 2013 год
 
Письмо букв Зз
Письмо букв ЗзПисьмо букв Зз
Письмо букв Зз
 
Evaluation media
Evaluation mediaEvaluation media
Evaluation media
 
Single sex schools
Single sex schoolsSingle sex schools
Single sex schools
 
Word Chapter 02
Word Chapter 02Word Chapter 02
Word Chapter 02
 
Disease pictures
Disease picturesDisease pictures
Disease pictures
 
Taking Action Against HIV Stigma and Discrimination
Taking Action Against HIV Stigma and DiscriminationTaking Action Against HIV Stigma and Discrimination
Taking Action Against HIV Stigma and Discrimination
 
Situación Mundial de la Diabetes 2013
Situación Mundial de la Diabetes 2013 Situación Mundial de la Diabetes 2013
Situación Mundial de la Diabetes 2013
 

Semelhante a Strutsjspservlet

08052917365603
0805291736560308052917365603
08052917365603
DSKUMAR G
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
Carles Farré
 
Strut2-Spring-Hibernate
Strut2-Spring-HibernateStrut2-Spring-Hibernate
Strut2-Spring-Hibernate
Jay Shah
 
Ta Javaserverside Eran Toch
Ta Javaserverside Eran TochTa Javaserverside Eran Toch
Ta Javaserverside Eran Toch
Adil Jafri
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
funkatron
 

Semelhante a Strutsjspservlet (20)

Spring Surf 101
Spring Surf 101Spring Surf 101
Spring Surf 101
 
Struts Intro
Struts IntroStruts Intro
Struts Intro
 
08052917365603
0805291736560308052917365603
08052917365603
 
Struts 2 Overview
Struts 2 OverviewStruts 2 Overview
Struts 2 Overview
 
Jsp
JspJsp
Jsp
 
Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2
 
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
[DSBW Spring 2009] Unit 07: WebApp Design Patterns & Frameworks (3/3)
 
ActiveWeb: Chicago Java User Group Presentation
ActiveWeb: Chicago Java User Group PresentationActiveWeb: Chicago Java User Group Presentation
ActiveWeb: Chicago Java User Group Presentation
 
Strut2-Spring-Hibernate
Strut2-Spring-HibernateStrut2-Spring-Hibernate
Strut2-Spring-Hibernate
 
Ta Javaserverside Eran Toch
Ta Javaserverside Eran TochTa Javaserverside Eran Toch
Ta Javaserverside Eran Toch
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
 
Jsfsunum
JsfsunumJsfsunum
Jsfsunum
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
 
Struts2 in a nutshell
Struts2 in a nutshellStruts2 in a nutshell
Struts2 in a nutshell
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
 
Retrofitting
RetrofittingRetrofitting
Retrofitting
 
Struts Overview
Struts OverviewStruts Overview
Struts Overview
 
Android the Agile way
Android the Agile wayAndroid the Agile way
Android the Agile way
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 

Último

Último (20)

How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 

Strutsjspservlet

Notas do Editor

  1. Struts and Tiles Tutorial -
  2. Struts and Tiles Tutorial - This provides the base for a model view controller architecture.
  3. The &lt;set-property&gt; tag is the only tag under the data-source node. Acceptable attributes of set-property: property value id
  4. Tags under the form-beans node. Form-bean name type className dynamic id Allowable tags under form-bean with their attributes Description Display-name Form-property name type className initial size Icon Set-property property value id
  5. Tags under the global-exceptions node Exception type key bundle className handler id path scope Tags under Exception Description Display-name Icon Set-property property value id
  6. Tags under the global-forwards node Forward name path className contextRelative id redirect Tags under the forward node Description display=-name Icon set-property property value id
  7. Action is the only tag under the action-mapping node it have the following attributes: Name Input Path Scope Type Attribute className Forward Id Include Parameter Prefix Roles Suffix Unknown Validate Tags under the action node Description Display-name Exception Forward Icon Set-property
  8. The Controller tag has several attributes associated with it: processorClass bufferSize className contentType Debug forwardPattern Id inputForward Locale maxFileSize memFileSize multipartClass Nocache pagePattern tempDir Tags that can be used under the controller node Set-property
  9. The Message-resources tag has several attributes associated with it: parameter className Factory id Key Null Tags that can be used under the message-resources node Set-property
  10. The plug-in tag has a couple of attributes associated with it: className Id Tags that can be used under the plug-in node Set-property
  11. The paramName does not need to be specified if the nested:link is used. It must be used nested in a form or in an iterator tag.
  12. The value of isUSCitizen must be set to false in the reset() method for this control to work correctly. This is based on how checkbox values are sent in html.
  13. It may be useful to create another validation-rules-&lt;company&gt;.xml for your company specific validation rules.
  14. Unless you are developing your own validation rules, you should even need to look at this file. We are looking at it in an effort to provide a greater understanding of how the framework works.
  15. The resource = false, tells the framework to not lookup anything from the resource file, to use the key as the name The ${var:minlength} is replaced with the value of var-&gt;var-name== minlength which in this case is 5. This allows the configuration of the value once.
  16. How could you create a error message which would display the configured datePattern that is required?
  17. Example: &lt;plug-in className=&amp;quot;org.apache.struts.tiles.TilesPlugin&amp;quot;&gt; &lt;set-property property=&amp;quot;definitions-config&amp;quot; value=&amp;quot;/WEB-INF/tiles-defs.xml&amp;quot; /&gt; &lt;set-property property=&amp;quot;definitions-debug&amp;quot; value=&amp;quot;1&amp;quot;/&gt; &lt;set-property property=&amp;quot;definitions-parser-details&amp;quot; value=&amp;quot;0&amp;quot;/&gt; &lt;set-property property=&amp;quot;definitions-parser-validate&amp;quot; value=&amp;quot;true&amp;quot;/&gt; &lt;set-property property=&amp;quot;definitions-factory-class&amp;quot; value=&amp;quot;com.codementor.TilesFactory&amp;quot;/&gt; &lt;/plug-in&gt;
  18. &lt;definition extends=&amp;quot;main&amp;quot; name=&amp;quot;failure.page&amp;quot;&gt; &lt;put name=&amp;quot;body&amp;quot; value=&amp;quot;/Failure.jsp&amp;quot; /&gt; &lt;put name=&amp;quot;title&amp;quot; value=&amp;quot;Failure Page&amp;quot; /&gt; &lt;/definition&gt; &lt;/tiles-definitions&gt;
  19. &lt;plug-in className=&amp;quot;org.apache.struts.tiles.TilesPlugin&amp;quot;&gt; &lt;set-property property=&amp;quot;definitions-config&amp;quot; value=&amp;quot;/WEB-INF/tiles-defs.xml&amp;quot; /&gt; &lt;/plug-in&gt; &lt;/struts-config&gt;