Index
Symbols\Numerics
< character 68
# character 67
{0} 63
{0}/{1}
default message for layout pager 239
401 unauthorized 320
A
Abstract Action 155156
Abstract Base Action 154
Abstract Struts Action 154, 157
abstraction 405
acceptance 62
acquire resources 353
Action
guarding 319
protext 319
Action authorization
override 342
action mapping
input attribute 247
parameter attribute 270
protect 336
validate attribute 246
ActionErrors 4546, 48, 51, 58, 63, 65, 245246, 256, 261, 263, 273, 341, 387388, 390, 430431, 434
format 247
ActionErrors.GLOBAL_ERROR 45
ActionForm
responsibility 268
validate 244
validation 336
ActionForward
and jsessionid 18
default application 14
default application from URL 14
discussed 15
not used in web.xml 15
recipe explained 14
recipeActionForward 14
redirected 18
transfer from index.jsp 15
using constants 33
using DynaActionForms 40
ActionMapping
extend 306
type attribute 308
<action-mappings/> 249
ActionMessage 4748, 51, 54, 6061, 6366, 6869
actions
exposing to page 140
keep short best practice 236
ActionServlet 22, 336, 339, 353357, 384385, 446, 465
responsibilities 339
adapter 364
Adobe 371
download 372
advisory title 303
aggregate, errors 44
AggregateException 266
AggregateExceptionHandler 267
airline reservation 62
Alert Window 322
alternate row colors 80
alternate text 303
altKey 303
analyze 345
anomalies 438
anonymous 318
Ant 3, 13, 250
acronym explained 7
best practice 13
build.log output 12
build.properties 11
substitution parameters 12
build.properties code listing 11
build.properties file 9
build.xml file 9
Cactus 439
command 9
compile-domain target 10
create build.xml 7
create script 7
defacto build tool 3
default project attribute 9
directory naming 28
DynaActionForm 40
embedding version numbers 12
explained 3
first steps 7
<javac> tag 10
jCoverage 463
JSP, declaring location 10
JUnit 427
mail tag 10
parameters 13
powerful tool 13
recipe 6
recipe description 6
reusable scripts
best practice 13
running 9
separate deployment and development 4
standard project properties 9
tag 10
testing 436
used daily 13
WAR file, declaring location and name 10
Apache Digester 423
Applets, option for Struts 2
application
intuitive 62
quality 50
application context 354
Application Server
JBoss 3
Weblogic 3
Websphere 3
application usability 53
application.proprties 268
architecture 318
args, with layout pager 239
arguments
for layout pagerStatus tag 240
array 63
ASCII 89
ASCII codes 89
ASP 158
associate 52
attributes
for layout tab tag 231
of skinResources 201
of tab and tabs tags 230
audience 62
audit 329
authenticate 327, 336, 347
authentication 318
base64 320
basic 320
container-based 319
domain-level 320
HTTP digest 321
HTTP form 321
HTTPS Client 321
mechanisms 320
realm 324
SSL 330
strategy 319
authorization 318, 320
automated 436, 438, 468
Ant best practice 13
ant build 6
build process 13
functional testing 13
testing 444
automated build 462
autonomous teams 449
B
B2C 351
back button 417
and crumbs 223
backwards compatibility 364
backwards navigation 218
batch program 391
<batchtest> 443
Bayern, Shawn 140
BEA WebLogic 438
<bean:message> 46, 299
format 65
bean:write 114
<bean:write> 47
beginXXX() 439
BodyTagSupport 82
bookmark 406
Boolean, logic present tag 128
browser support 371
buffer 73, 94
flush 369
build.properties 7
build.xml
adding resource bundles 28
bundle, attribute and tabbed panes 226
Burst Test 456
business errors 256
business exceptions 398
business façade 367, 373, 394
business layer 70, 73, 79, 256, 306, 329, 372, 393, 396
responsibilities 393
business logic 58, 377
and tag libraries 100
sensitive 320
Business Objects
and Action class 97
deciding how MVC works with, 103
business rules 58
BusinessException 258
Business-to-Consumer 349
byte code injection 466
ByteArrayOutputStream 369
bytecode 378
C
cache 72, 7879, 423
Struts 79
caching 273, 352353, 357, 400, 417418, 461
strategy 400
cactify 443
Cactus 426, 428, 437440, 442444
Ant tasks 442
build.properties 444
connect to Tomcat 443
lifecycle 439
mergewebxml attribute 443
port attribute 443
proxy redirector 438
report format 443
report location 443
report.xsl 442
servlet example 443
StrutsTestCase 444
Tomcat 443
Tomcat shutdown 443
Tomcat startup 443
war file 443
web.xml 443
Cactus lifecycle 439
<cactus> 443
CactusStrutsTestCase 428, 433, 437, 439
cactus-web.xml 441
Castor 368
certificate keystore, create 331
CGI vs. tag libraries 100
challenge 336
change, constant 417
changeRowColor, JavaScript and selected row 205
Choice format 67
cipher 329, 335
circumvent navigation 406
class loader 72, 369, 385, 415
ClassCastException 404
problem with integers 119
classpath 299, 383, 418
clean up session objects 153
client side tabs recipe 232
coarse-grain 338
Cocoon, option for Struts 2
code branches 462
code changes, not required 72
coffee 318
cognitive 50
collate 57
collection 81
errors 50
messages 47
collections and bean define tag 121
color code 80
colors, sets 80
colspan, attribute used in tabbed panes 228
column sort with Struts-Layout tags 173
comma delimited 336
Comparable 448
comparator 448
complex applications
and logic present tag 137
in team environments 148
complex conditional logic 306
complex views with logic present tag 128
complexity 395396, 455
ComponentContext 360
composition 378
confidentiality 329
configuration parameters
runtime 70
configure, tasks for Struts-Layout use 175
confirmation 62
<constant> 278
<constant-name> 278
<constant-value> 278
Constants
java code 32
java file 32
recipe 32
constructor 45
container managed security 327
<containerset> 443
Content-Disposition 90
ContentLength 369
ContentType 369
Continuous Performance Testing 455
contracts 450
control
and actions 98
message queue 55
controller 339
controller tag 95, 296, 340
Controller, action class, keep short 236
<controller/> 249
<controller> 94, 408
controllerClass 359, 362
ControllerSupport 360
controllerUrl 362
controls, types 328
cookie 321, 416
country code 300
coupling 376, 393
Struts 402
coverage testing. See testing
coverage testing tool 462
createResources 419
critical decisions and tag library use 99
critical success factor 455
CRUD 270, 378, 391
crumbs
browser view 221
controlling boundaries 223
customizing 223
listing for dynamic 221
method to limit crumb size 223
navigation best practices 224
separator attribute 223
setting 223
tag listing 221
crumb-trails, dynamic and static 218
cryptographic algorithm 329
CSS 321
and accessing bean resource 145
and logic present tag 130
and MVC 99
contextual elements with layout panel 190
default directory with Struts-Layout tags 194
extra CSS files with Struts-Layout tags 201
image references with Struts-Layout tags 194
in JSPs 38
interation with layout panel tag 190
linking stylesheets recipe 37
listing for layout panel tag 188
listing with layout panel 191
location of 176
placement 37
relative paths 37
skins with Struts-Layout tags 193
solid references 6
Struts-Layout simple table 180
style block for complex table 186
style blocks and Struts-Layout tags 193
styleClass attribute
layout panel tag 190
with custom skin 195
with layout panel tag 188
with selectable rows 202
with Struts-Layout tags 174, 177, 180, 186187, 189, 191, 193194, 196, 199200, 205, 214, 216, 219, 223, 228229, 232, 238
"onglet" prefix 230
attributes for tab(s) tags listed 231
attributes in tab(s) tags 230
browser view 230
custom skins 196
details for tabs 226
French namespaces 229
layout pager tag listing 237
listing for tree navigation 214
listing for use with tabbed panes 229
pager tag 233
special tabbed pane classes 228
styleClass declaration with layout pager tag 238
tab(s) attributes listed 231
tabbed panes 226
classes explained 230
table listing for tabs classes 232
tree navigation 208, 214, 216
eccentricities 216
tree navigation debugging with 216
wire diagram reference 229
with layout pager tag 237
with layout pagerStatus tag 240
CSS Style Sheets linked with html rewrite tag 150
cultural differences 309
culturally friendly 309
custom JSP tag 80
custom message queue 53
custom queue 55
custom skins
and layout skin tag 195
creating 201
custom validator 312
D
DAO 392
create dynamically 402
declarative 402
factory 402, 404
Data Access Object Pattern 392
data input 75
Data Mapper pattern 378
data source layer, persistence layer 393
data store 398
data transfer object 256, 268
data validation 268
data, insert 62
database 73, 256, 321, 329, 378, 406, 417
access 418
dialect 383
driver 383
minimize access 418
type 378
database connections 357, 364, 461
database server, start 379
DB2 379
debugging 379
declarative exception handling 243, 256, 342, 390391, 396
employ 342
exceptions aggregate 261
how works 256
use case 257
declaratively 316, 330
decorates 460
decouple 417
decrypt 329, 335
dedicated environment 455
default Action classes
for Struts-Layout 177
default.css and layout skin tag 194
defensive copy 357
define contracts 450
definitions and Tile mappings 162
delegate 339, 367
delineate 90
denial-of-service attack 94
deployable artifacts 443
build process 6
deployment 417
design by contract 450
design patterns 55
vs. reality 171
design practice, contracts 450
design refactoring 462
destroy() 353355, 357, 385
dialog box 320
Digester 415, 423
rules 415
stack 415
directory for layout tags 199
disaster recovery 352
DispatchAction 268
reflection 270
use 270
doAfterBody 84
document management
and logic equal tag 135
doGet 353
domain authentication 319
domain layer, business layer 393
domain model 378
doPost 353
doStart 84
doStartTag 84
drawbacks 44
DTO 256, 268
DynaActionForms 41, 444445
and logic equal tag 135
getting variables from form bean 40
pitfalls 41
recipe 38
recipe description 6
recipe explained 38
StrutsTestCase 444
testing. See testing
useful 444
DynaBean interface 445
DynaBean property values 445
DynaClass 445, 447
DynaForm testing
assertions 445
dynamic 62
dynamic content 125
dynamic messages 44
dynamic tables with paging 233
DynaProperties 445
DynaPropertiesHelper 447
DynaPropertyComparator 448
E
easy to use 62, 71
Einstein 369
EJB 357, 405406, 423, 461
elements
hiding with logic present tags 127
email 249
encapsulate 45
encapsulate business logic 367
encapsulation 392
encode 89
automatic 89
scheme 89
encrypt 329330, 335
encryption 321
endXXX() 439
<engine> 324
Enumerate contracts 450
environment 444
ergonomic 79
error handling mechanisms 256
error messages
list 57
placement 50