Академический Документы
Профессиональный Документы
Культура Документы
Captulo 1
Presentacin
1. Qu es un framework? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Por qu utilizar un framework?. . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Normas y estndares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Framework y desarrollo Web. . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Los distintos tipos de framework . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4. Qu framework elegimos?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5. Introduccin a la programacin en Java Entreprise Edition . . . . . . . 15
6. Struts 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7. Struts 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
8. Instalacin del framework Struts 2. . . . . . . . . . . . . . . . . . . . . . . . . 20
9. En resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Captulo 2
Struts 2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
46
48
49
50
51
51
52
52
5. Arquitectura de Struts 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
6. Los archivos de propiedades struts.properties y default.properties. . 56
7. El archivo de propiedades de la aplicacin web.xml . . . . . . . . . . . . 60
8. El archivo de configuracin struts-default.xml . . . . . . . . . . . . . . . . 61
9. Nuestra primera aplicacin con Struts . . . . . . . . . . . . . . . . . . . . . . 62
10. En resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Captulo 4
Contenido
Captulo 5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
84
85
87
91
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
104
105
108
111
113
113
114
115
115
etiquetas de formulario. . . . . . . . . . . . . . . . . . .
La etiqueta <s:form/> . . . . . . . . . . . . . . . . . .
Los temas de presentacin y el atributo theme
La etiqueta <s:textfield/>. . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
123
124
126
129
Struts 2
El framework de desarrollo de aplicaciones Java EE
2.4 La etiqueta <s:password/> . . . . . . . . . . . . .
2.5 La etiqueta <s:submit/>. . . . . . . . . . . . . . .
2.6 La etiqueta <s:reset/> . . . . . . . . . . . . . . . .
2.7 La etiqueta <s:label/> . . . . . . . . . . . . . . . .
2.8 La etiqueta <s:head/> . . . . . . . . . . . . . . . .
2.9 La etiqueta <s:textarea/> . . . . . . . . . . . . . .
2.10 La etiqueta <s:checkbox/> . . . . . . . . . . . . .
2.11 La etiqueta <s:select/> . . . . . . . . . . . . . . . .
2.12 La etiqueta <s:optgroup/> . . . . . . . . . . . . .
2.13 La etiqueta <s:radio/> . . . . . . . . . . . . . . . .
2.14 La etiqueta <s:checkboxlist/> . . . . . . . . . .
2.15 Otras etiquetas de los formularios de Struts
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
129
129
130
131
131
131
133
134
141
144
147
150
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
151
151
154
155
155
156
157
158
159
159
159
160
164
166
4. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Contenido
Captulo 7
Mensajes e internacionalizacin
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
2. Aplicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3. Acceso a las propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
4. Datos multilinges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5. Seleccin dinmica de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6. Acceso a los recursos de las clases . . . . . . . . . . . . . . . . . . . . . . . . . 185
7. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Captulo 8
Validacin de entradas
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
2. Aplicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
3. Validaciones . . . . . . . . . . . . . . . .
3.1 required. . . . . . . . . . . . . . . .
3.2 requiredstring . . . . . . . . . . .
3.3 stringlength. . . . . . . . . . . . .
3.4 int . . . . . . . . . . . . . . . . . . . .
3.5 date. . . . . . . . . . . . . . . . . . .
3.6 e-mail . . . . . . . . . . . . . . . . .
3.7 url . . . . . . . . . . . . . . . . . . . .
3.8 regex . . . . . . . . . . . . . . . . . .
3.9 fieldexpression y expression.
3.10 conversion . . . . . . . . . . . . . .
3.11 visitor . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
197
197
198
198
199
199
200
202
202
203
206
208
Struts 2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
222
223
224
231
7. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Captulo 9
Contenido
3. El interceptor fileUpload. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
4. Carga nica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
5. Carga mltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
6. Carga en Ajax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
7. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Captulo 12
Desarrollar interceptores
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2. Escribir un interceptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
3. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Struts 2
Desarrollar resultados
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
2. Escribir un resultado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
3. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Captulo 16
362
363
364
368
373
377
387
5. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Contenido
Captulo 18
XSLT
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
2. Utilizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
3. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Captulo 20
Complementos de Struts
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
2. El complemento JFreeChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
3. El complemento Tiles . . . . . . . . . . . . . .
3.1 Pgina del formato de la plantilla .
3.2 Definicin de la plantilla . . . . . . . .
3.3 Aplicacin del complemento Tiles .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
419
422
423
425
Struts 2
10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
438
439
439
442
442
447
448
448
449
4. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Anexo
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
2. Interceptores de Struts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
3. Object-Graph Navigation Language OGNL. . . . . . . . . . . . . . . . . . 454
4. En resumen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
ndice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463