unit tests
Ant build script, 289
batchtest element, 289
build artifacts, 270
classpath element, 289
fileset element, 289
formatter element, 289
report element, 290
junit task, 289
junitreport task, 289
testing database compatibility with source code, 270
unknown attribute
action element, Struts, 49
update() method
DataAccessObject interface, 161
URL prefix mapping
JavaEdge application, ActionServlet configuration, 46
URLResourceLoader
processing templates using Velocity, 222
validate attribute
action element, Struts, 84
validate() method
ActionForm class, Struts, 41, 82
form validation, use in, 85
PostStoryForm class, use in, 94
ActionErrors class, error instantiation, 95
deployment example, 94
validation rules, 94
viewing errors generated by, 98
validating data
application services, 11
validating forms
see form validation.
Validation Confusion AntiPattern, 21
form validation, symptoms in, 80
mixing validation/business logic
solution, defining validating services, 22
symptoms, 22
validation logic, 21
definition, 21
Validation Confusion if mixed with business logic, 21
validation.xml file
argX tags, 117
configuring Struts for Validator, 115
maxlength rule, 118
required rule, 115
field tag, 116
form tag, 116
formset tag, 116
form-validation tag, 116
msg tag, 117
var tags, 120
Validator framework, Struts, 114
configuring Struts for Validator, 115
validation.xml file, 115
validator-rules.xml file, 115
introduction, 114
maxlength validation rule, 118
required rule, 115
ValidatorPlugIn class
search engine/index, implementing, 247
validator-rules.xml file
configuring Struts for Validator, 115
maxlength validation rule, 118
required rule, 115
value attribute
Ant property element, 282
html:cancel element, 106
html:option element, 108
html:radio element, 110
html:submit element, 106
set-property tags, 115
Value objects
advantages of using, 163
compared to DAO, 160
data access logic
description, 163
JavaEdge application, 164
MemberVO class, 164
StoryCommentVO class, 164
StoryVO class, 164
ValueObject interface, 164
ValueObject interface
JavaEdge application, 164
var tags
validation.xml file, 120
var-
validation.xml file, 120
var-value tag
validation.xml file, 120
VCS
see Version Control System.
Velocimacros
see macros, Velocity.
Velocity
Anakia tool, 227
arithmetic operators, 218
collections, 213
compared to XSLT, 202
context, 202, 203
control flow directives, 213
creating RSS feed, 202, 224
Struts, 225
creating templates, 202, 203, 206
example, 204
VTL, 210
definition, 7
description, 203
external templates, 217
installing, 227
JavaEdge application, deployment requirement, 43
macros, 216
method shortcuts for accessing properties, 208
running Velocity examples, 205
VeloGUI tool, 205
search engine/index, querying, 257, 258
solution to Concern Slush AntiPattern, 202
syntax, 210
using in web application, 223
JSP page, 223
using Velocity engine from Java, 220
processing template, 220
resource loaders, 222
Velocity class
evaluate() method, 220
getTemplate() method, 207
using Velocity engine from Java, 220
velocity tag, 224
creating RSS feed, 228
strictaccess attribute, 224, 231
Velocity tag library
installing, 227
velocity tag, 224
Velocity Templating Language
see VTL.
VelocityContext class, 206
context chaining, 206
get() method, 206
put() method, 206
VelocityServlet class
handleRequest() method, 223
VeloGUI tool
running Velocity examples, 205
version attribute
descriptor-repository element, 172
Version Control System
Anthill and, 277, 299
building JavaEdge application, 271
problems with versioning, 271
repository adapter, 299
Vizant
visualizing targets, 284
VO pattern
see Value objects.
VTL (Velocity Templating Language)
#include directive, 217
#macro directive, 216
#parse directive, 217
#set directive, 210
arithmetic operators, 218
comments, 212
control flow directives, 213
#else directive, 213
#elseif directive, 213
#end directive, 213, 215
#foreach directive, 215
#if directive, 213
creating templates using Velocity, 210
escaping
quiet reference notation, 211
string concatenation, 211
syntax, 210
VulgaritiesFilter class
checkForVulgarities() method, instantiating using, 96
deployment code, 96
isOffensive() method, 97