corejsfIX.fm Page 639 Wednesday, May 12, 2004 2:26...

20
A accept attribute 93 accept-charset attribute 93 access control application directory structure 488 application welcome page 483 example web.xml constraints 479 see also authentication, security accessKey attribute 93 action attribute 111 action events 28 defined 274 example 282 firing 414 overview 281 action listeners actions versus 281 buttons, attaching to 74 how used 282 link, adding to 281 registering 275 when invoked 112, 283 actionListener attribute 111 tag 86 algorithm for navigation 82 Alice in Wonderland book viewer example 316 aligning panels 154 alt attribute 93 Amazon Web Services 492 Ant build automation 30 build.xml example 31 deploy task, not recognizing 35 deployment manager 34 getting complete set of course files 636 JSF and Eclipse 617 undeploying 35 applets chart applet 573 including in page 572 application layers, separation from business logic 12 application name, specifying in build script 34 application scope 53, 459, 626 Apply Request Values phase 29

Transcript of corejsfIX.fm Page 639 Wednesday, May 12, 2004 2:26...

  • A

    accept attribute 93accept-charset attribute 93access control

    application directory structure 488application welcome page 483example web.xml constraints 479

    see also

    authentication, securityaccessKey attribute 93action attribute 111action events 28

    defined 274example 282firing 414overview 281

    action listenersactions versus 281buttons, attaching to 74how used 282link, adding to 281registering 275when invoked 112, 283

    actionListenerattribute 111tag 86

    algorithm for navigation 82Alice in Wonderland book viewer example 316aligning panels 154alt attribute 93Amazon Web Services 492Ant

    build automation 30build.xml example 31deploy task, not recognizing 35deployment manager 34getting complete set of course files 636JSF and Eclipse 617undeploying 35

    appletschart applet 573including in page 572

    application layers, separation from business logic 12

    application name, specifying in build script 34application scope 53, 459, 626Apply Request Values phase 29

    corejsfIX.fm Page 639 Wednesday, May 12, 2004 2:26 PM

  • Index

    640

    architecture overview of JSF 23ArrayDataModel class 185attribute tag 86attributes

    basic HTML tag 90custom components 357data tables 166forms and HTML tags 96HTML 4.0 93HTML tags 90LDAP 448messages 149method binding expressions 65outputLink 115panelGrid 155selection 124servlet exception 596text input 100text input examples 102text input, complete example 104

    authenticationcontainer-managed 478form-based 479LDAP 447

    authorizationcontainer-managed 478failed authorization, page 489LDAP settings 451

    auto deploy in Tomcat 34automation of build process and Ant 30

    B

    backing beans 50basic attributes of HTML tags 90beans

    application scope 459backing beans 50bean classes 13configuration 53configuring for external services 459configuring JSF bean 460customizing in GUI builder 38defined 13, 37

    definitions, changing 57index properties 40managed beans 36message bundles 41naming pattern 39, 40properties 39property values, setting 54purposes used for 39read/write access 13scopes 51, 58standard implementation 38string conversions 58tabbed panes, using 420UserBean code and explanation 39validation with bean methods 242value-binding expressions 41, 60

    bgcolor attribute 155binary data, including in JSF page 575binding attribute 90, 109, 131bindings

    id attribute and 91method bindings 386

    see also

    value bindingbook viewer

    common content inclusion 325content inclusion 327example 316layout example 316monolithic JSF page 320tiles 330tiles, extending 335tiles, using with 332using 318

    border attribute 93, 155bracket use 61branching behavior in dynamic

    navigation 70build files

    customizing build.properties file 32key elements 31overview 30web services build files 496

    build processAnt 30

    corejsfIX.fm Page 640 Wednesday, May 12, 2004 2:26 PM

  • Index

    641

    application name, specifying 34automation 30build.properties example 32example build.xml 31shortcuts 12simple login example 11

    build.properties 32build.xml 31bundles, message 41business logic

    separation from presentation 12, 283separation from presentation and

    beans 37buttons

    action listeners, attaching to 74commandButton examples 113

    see also

    user interfacetags 111

    C

    cache prepared statements 436canvases

    example 508MIDP 507

    catalina.out, replacing with rotating logs 635

    cell phonesAPIs 505multithreading 512

    see also

    wireless clientssoft keys 509

    cellpadding attribute 155cells

    editing contents 173JSF components 170

    see also

    tablescharset attribute 93, 112checkboxes

    example 140input components in tables 175selection attributes 124selection tags 122using 124

    child componentsdefined 356processing in tabbed pane 406tabbed pane 401

    class pathlogging 635simple login example 12

    classescustom component classes 355custom component main classes 356custom components, implementing

    with 352tag class responsibilities 368tag handler class, how used 25

    cleanup work, example 626clients

    client-side validation, writing tag 606validation with Struts 600wireless 504

    client-side validationJakarta Commons Validator 615Struts 600writing tag 606

    code examples,

    see

    examplescols attribute 101column orientation in data tables 165column tag 88columns

    see also

    rows, tablessorting table columns 193sorting table columns, code 194

    command shellbuild instructions 11building application 33launching 11

    commandButtonattributes 111examples 113issues 113tag 88

    commandLinkattributes 111examples 114tag 88

    corejsfIX.fm Page 641 Wednesday, May 12, 2004 2:26 PM

  • Index

    642

    commands and MIDP 508Commons Validator 616compatible bean scopes 58compiling Eclipse with JSF 617component trees

    defined 25how created 25Restore Component Tree phase 28server-side, recreating 275validator script using 607when exists 607

    componentsaction listeners, registering 275backing beans 50component hierarchy 356custom, overview 351custom, using 350HTML component tag in JSF page,

    results 517immediate, overview 292immediate, using 294input components and table cells 174JSF components 169

    see also

    custom componentsvalidating relationships among 243,

    616validation 600

    configurationbean configuration 53configuration file, locating 622container-managed resource,

    managing 462container-wide resource 464database configuration information

    source 439external context 460external services 458JSF bean 460LDAP context 461LDAP server 450LDAP, complete example 465managing information for 458realm 481Tomcat and database resources 436

    connectionsmanagement overview 432maximum number of active

    connections 438monitoring and removing 438pooling 433prepared statements 436

    container-managedauthentication and authorization 478resources, configuration 462security 483security, logging off 482

    containersJSF container, turning logging on 634servlet container requirements 5servlet container services 503Tomcat, overview 4

    container-wide resources, configuring 464

    content inclusionbook viewer 327tabbed pane 409tiles 330tiles, installing 331

    control flow with mobile clients 515controllers, tile 340conversion 207

    converting strings in beans 58custom converters 223custom, example 234date conversion attributes 210error messages 211errors 211errors, reporting 228example 214example code 215number conversion attributes 209overview 206saving and restoring state 254using 205

    convertDateattributes 210tag 210

    convertDateTime tag 86

    corejsfIX.fm Page 642 Wednesday, May 12, 2004 2:26 PM

  • Index

    643

    converter attribute 90converters

    calling from external renderers 384custom components 364custom converter example 234HTML tags 92packaging as reusable JAR files 250spinnner 364

    convertNumberattributes 209tag 86, 209

    coords attribute 93core library overview 86credit cards

    CreditCard class 224custom tag validation 248formats 224Luhn formula 238validation 224validation example 263

    cross-site scripting attacks 108CSS

    dataTable classes 177HTML tags 92panelGrid attributes 155shortcut 92supporting in custom components

    410tabbed pane, using in 402

    currency

    see also

    numberscustom components

    attributes, defined 357child components 401child components, defined 356component hierarchy 356converters 364CSS 410decoding 362external renderers, calling converters

    from 384facet components, defined 356facets 401framework services 24

    generating markup 358hidden fields 411implementing with classes 352JavaScript 396main classes 356markup methods 358method bindings 386minimum classes 355overview 351request values 362spinner example 353state, saving and restoring 412tabbed panes example 401tag handler 367using 350value bindings, defined 357value change listeners 385

    custom converter example 234custom tags

    parameters, supplying without 261validation 248validation and conversion 223validators, registering 240

    D

    databinary data in JSF page 575large data set, displaying 581user data, gathering with midlet 516user data, managing in welcome

    message 9user data, querying directory for 455

    data conversion and framework services 24

    data tables 161attributes 166example 162example code 164header and footers 167row or column orientation 165

    databasesaccessing 431complete example 439

    corejsfIX.fm Page 643 Wednesday, May 12, 2004 2:26 PM

  • Index

    644

    databases (cont.)complete example code 443configuration information for

    external services 458configuration information source 439connection management 432connections, pooling 433database tables 179displaying query results 180hierarchical and LDAP 448LDAP information, accessing 453prepared statements 435result sets and JSTL 185sorting and filtering 191table models 185table models, editing 186Tomcat database pool parameters

    438Tomcat, configuring 436

    dataTableattributes 166CSS classes 177tag 88, 161

    datesconversion 207conversion attributes 210

    debugging 26, 630deciphering a stack trace 630decoding

    current HTTP request 355JSF pages 26requests 27

    decoding custom components 362decorator pattern 629definitions for a bean, changing 57deployment

    Ant doesn’t know deploy task 35automating 30deployment manager 34

    DHTMLattributes of HTML tags 94event attributes 95, 101, 109, 112,

    113, 115, 124, 155, 166dir attribute 93

    directoriesdirectory structure login example 10LDAP 448LDAP example 465LDAP information, accessing 453

    directory structurecheckboxes and radio buttons

    example 140components example 170converter example 214custom converter example 234database example 181Java quiz application 74JavaScript example 99JSF applications 10sorting example 194text areas and text fields example 105thorough validation example 264WAR file, simple login example 10

    disabled attribute 93displayables in MIDP 507distinguished name, defined 448DOCTYPE 15, 16DoubleRangeValidator class 218dynamic navigation

    branching behavior 70code 78overview 69quiz example 70

    E

    Eclipse and JSF 617emulator, MIDP 514encoding

    accept-charset attribute 93generating markup 358JSF pages 26linked reference attribute 112markup for rendering user interface

    355object state, more efficient 255

    environments, visual development 21

    corejsfIX.fm Page 644 Wednesday, May 12, 2004 2:26 PM

  • Index

    645

    error messagesexample 151

    see also

    messagestext of 213

    errorsconversion error messages 211conversion, reporting 228deciphering stack trace 630error pages, customizing 595logging, turning on 634logs, finding 632validation errors, displaying 219

    escape attribute 109escape sequence encoding 42event handling 304

    responding to user events 273skipping step 29

    event listenersimmediate input components 294phase example 301

    eventsaction event, example 282action event, firing 414action event, overview 281DHTML event attributes 95event handling 273event listener tags 290life cycle 274phase events 296supported types 273value-change, example 278value-change, overview 275

    examplesaction events 282applets 572authentication and authorization 480Battleship on mobile clients 528bean method validation 245binary data in JSF page 575book viewer 316, 318build instructions for simple login 11build.properties 32build.xml 31

    catalina.out, replacing with rotating logs 635

    client-side validation, writing tag 606commandButton 113complete database 439complete database, code 443configuration file, locating 622container-wide resource, configuring

    464conversion 214conversion, code 215credit card converter, custom 253credit card validation 224, 263custom converter 234data table 162data table code 164database query formatting code 182debugging and logging 630deleting table rows, code 188displaying database query results 180dynamic navigation code 78error pages, customizing 595file uploads 561form ID and JavaScript 622headers and footers 167headers and footers code 169How Do I chapter 560image maps 571initialization or cleanup work 626input component code 176item groups 135item selection 135Jakarta Commons Validator 615JavaScript 97JavaScript code 99JavaScript function, appearing once

    per page 623JSF and Eclipse 617JSF code 15JSF components in tables 170JSF login 17JSF servlet configuration 18large data set, displaying 581LDAP application, code 469

    corejsfIX.fm Page 645 Wednesday, May 12, 2004 2:26 PM

  • Index

    646

    examples (cont.)LDAP application, creating 465library 316, 338library source, finding 636life-cycle events 274locales and commandLink 117login 7login example directory structure 10Luhn check 241message display 151messages 151messages, code 154MIDP 507mobile client component

    implementations 519page widgets 202phase listener example 301popup window 587quiz 44quiz and dynamic navigation 70quiz code 45render kits, selecting 629scrollbars 202sorting table columns 193sorting table columns code 194spinner custom component 353stack trace, deciphering 630standard application components 9state, saving and restoring 257Struts and client-side validation 600styles by row 179tabbed pane custom component 401tabbed pane reference

    implementation 307tabbed pane, custom component 402tabbed pane, poor man’s 304table models, editing 186tables and JSF components 170tags, packing in JAR file 623text input attributes 102text input complete example 104translation 46validating relationships among

    components 616

    validation 221, 600value-change events 278web services 495web services code 496WSDL 493

    exceptions, servlet exception attributes 596

    expressionscomposite expressions 64map and list expressions 61method-binding expressions 65value-binding expressions 60

    extensions.jsf or .jsp 14using .jsf 19

    external contextaccessing resources through 461reading parameter 461

    external renderers 378, 384external services

    configuring external context 460databases 431LDAP 447managing configuration information

    458using 430web services 492

    F

    facetsevent handling

    tabbed pane example 304facet components 356facet tag 86processing in tabbed pane 407tabbed pane 401

    fieldsaligning 154hidden, attributes 111hidden, submitting values using 411hidden, transmitting tab and content

    using 403file uploads, supporting 561

    corejsfIX.fm Page 646 Wednesday, May 12, 2004 2:26 PM

  • Index

    647

    firing action events 414footers

    data tables 167simple example 167simple example, code 169

    form tag 87forms

    attributes for HTML tags 96form elements and JavaScript 97form ID and JavaScript 622form-based authentication 479JavaScript 97JavaScript code 99MIDP 507MIDP, defining 508parameters page received 633

    forwarding requests and scope 52framework services

    life cycle 28overview 23overview of process 25

    from-action navigation 82

    G

    games, Battleship implementation 534getting started

    installation 4JSF overview 3

    graphicImageattributes 109issues 113tag 88

    groups, item 134GUI builder, customizing beans in 38

    H

    handlersevent handlers, skipping step 29navigation 28tag handler for custom components

    367

    headersdata tables 167simple example 167simple example, code 169

    hidden fieldsattributes 111submitting values using 411transmitting tab and content using

    403How Do I,

    see

    exampleshreflang attribute 93HTML

    differences from JSF 14DOCTYPE 16HTML 4.0 tag attributes 93

    HTML tagsattributes 90buttons 111component tag in JSF page, results

    517CSS styles 92DHTML attributes 94form attributes 96form elements 97HTML 4.0 attributes 93IDs and bindings 91image display 108JavaScript 97links 111messages 149overview 87rendering and styles 92text display 108text input attributes 100text input complete example 104text input examples 102values, converters, validators 92

    I

    id attribute 90, 91, 131IDEs 21IDs, bindings and 91image attribute 112

    corejsfIX.fm Page 647 Wednesday, May 12, 2004 2:26 PM

  • Index

    648

    image mapsareas, behaving like links 572implementing 571reference implementation tags 571

    imagesdisplay attributes 109displaying, tags 108image maps 571issues with graphicImage and

    commandButton 113uploads, supporting 562

    immediate attribute 101, 112immediate components

    overview 292using 294

    inclusioncomment content inclusion 325

    see also

    content inclusionindex.html, redirecting 20indexed bean properties 40initialization

    example 626lists and maps 55

    input componentstable cells, editing 174value change listeners 385

    input fields, aligning 154inputHidden tag 88inputSecret tag 87inputText tag 87inputTextarea

    examples 103tag 87

    installation 4interface, beans implementation 38internationalization

    automatically loading locale bundle 42

    framework services 24issues covered by JSF 24language, selecting 43message bundles 46page content 47

    Invoke Application phase 30

    ISO-639 language codes 42itemDescription attribute 131itemDisabled attribute 131items

    item groups 134selection attributes 131selection tags 130

    J

    J2MEBattleship game 520configuration 520defined 505overview 506tag handlers 519wireless toolkit 514

    Jakarta Commons Validator 615JAR files

    class path, simple login example 12packaging converters as reusable 250packaging tags in 623

    see also

    directory structureJava Studio Creator 21Java Web Services Developer Pack 492JavaBeans,

    see

    beansJavaScript

    form elements and 97function appearing once per page 623getting form ID for generating

    documents 622simple example 97simple example, code 99spinner, using in 396

    JavaServer Faces,

    see

    JSFJDBC

    basics 432prepared statements 435

    see also

    databasesJNDI

    connection to server, alternative 454container-managed resources 462data source, obtaining 437

    corejsfIX.fm Page 648 Wednesday, May 12, 2004 2:26 PM

  • Index

    649

    database configuration information source 439

    directory lookup 431realm 481SQL 431tutorial location 456

    JSFarchitecture overview 23beans 13beans, configuring 460build process 30combining with MIDP in games 534communication with MIDP 515component hierarchy 356components 169components, basic 4debugging 26deployment manager 34directory structure 10download sites 5Eclipse, using with 617encoding and decoding pages 26expression language, extending 626framework services 23HTML versus, differences 14installation 4monolithic pages 320overview 3overview of framework 25page extensions 14page URLs 14prerequisite knowledge 4sample applications 307servlet container requirements 5standard application components 9standard tags 84Struts validation in 600tabbed pane reference

    implementation 307visual development environments 21

    jsf extension, using 19JSTL versus result sets 185

    K

    keys and MIDP 508

    L

    lang attribute 93language code listing 42layouts

    commonly used 315

    see also

    presentation, user interfaceLDAP

    accessing directory information 453attributes 448authentication 447complete application example 465complete application example code

    469connecting to 453context, getting from configuration

    parameters 461hierarchical tree entries 448server products 450server, configuring 450verifying directory data 451

    leaks, plugging connection 433LengthValidator class 218libraries

    core library overview 86example 316library source, finding 636tile controller 340tiles, nested 340using 338

    life cycleevents overview 274events, example 274phase events 296phases 28

    linkschanging locales with 296command links, using 117commandLink examples 114image maps 571

    corejsfIX.fm Page 649 Wednesday, May 12, 2004 2:26 PM

  • Index

    650

    links (cont.)outputLink attributes 115tags 111

    listboxesexample 140selection attributes 124selection tags 122using 128

    ListDataModel class 185listeners

    action listeners, when invoked 283event listeners 290value change 385

    listsexpressions 61initializing 55string conversions 58

    loadBundle tag 86local values, why use 206locales

    bundle, automatically loading 42changing with links 296commandLink, using 118language, selecting 43setLocale method 43setting 42

    loggingcatalalina.out, replacing with rotating

    logs 635examples 630finding logs 632JSF container, turning on 634request parameters 633

    loginauthentication example 480checking whether user is allowed to

    24example navigation 17example servlet configuration 18simple example 7simple example code 15

    LongRangeValidator class 218Luhn

    check 241

    formula 238Lynx, testing Web application 483

    M

    managed beans 36maps

    expressions 61initializing 55item ordering 133sample map and area tags 571string conversions 58

    markupgenerating for custom components

    358methods 358

    maxlength attribute 94menus

    example 140selection attributes 124selection tags 122using 128

    message bundlescentrally locating strings 41encoding 42language, selecting 43loading locale bundle automatically

    42locale, setting 42

    message tag 88messages

    attributes 149bundles 41conversion error messages 211customizing error pages 595error message text 213example 151Resource Bundles, getting from 229tags 149validation errors, displaying 219

    methodsbean method validation 242method bindings and custom

    components 386

    corejsfIX.fm Page 650 Wednesday, May 12, 2004 2:26 PM

  • Index

    651

    method-binding component attributes 65

    method-binding expressions 65micro browsers,

    see

    cell phones, mobile clients

    Microsoft Active Directory 450midlets

    canvases and forms 507component implementations 517user data, gathering 516

    MIDPcanvases and forms 507combining with JSF to write game

    534commands and keys 508communicating with JSF application

    515emulator 514midlets 507multithreading 512networking 510overview 507soft keys 509

    mnemonicspi 44specifying selectItems value

    attributes 134mobile clients 504

    Battleship game example 528cell phone soft keys 509communication with JSF 515control flow 515MIDP 507render kits, selecting 629testing 514user interface for Battleship 528

    mobile phones,

    see

    mobile clients, cell phones

    modelsintegrity, preserving 206Model-View-Controller 23table models 185table models, editing 186table,

    see also

    tables

    multithreading in MIDP 512MVC and framework services 23

    N

    name-value pairs, forwarding or redirecting requests 52

    naming pattern for property getters and setters 39, 40

    naming, bean patterns 40navigation 67

    advanced issues 80algorithm 82dynamic 69from-action 82login example 17navigation handler 67navigation rules 68outcome 68redirection 80rules, specifying visually 22static 67wildcards 81

    nested tiles 340network transmission, speed on cell

    phones 506networking and MIDP 510numbers

    conversion 207conversion attributes 209

    see also

    currencyvalidation 217

    numbers and dates 207

    O

    on attributes for DHTML events 95OpenLDAP server 450operators for value-binding expressions

    64optimization and prepared statements

    435order, maps and item 133orientation for data tables 165

    corejsfIX.fm Page 651 Wednesday, May 12, 2004 2:26 PM

  • Index

    652

    outcomes and navigation 82outputFormat

    attributes 109tag 88

    outputLabel tag 88outputLink

    overview 111tag 88

    P

    packagesapplication source directory structure

    10converters 250JSF installation 4

    see also

    directory structureUserBean class package 10

    page widgets 202pager, using for large data set 581panelGrid

    attributes 155example 158tag 88

    panelGroupattributes 156example 157tag 88

    panelsattributes 155example 158tags 154

    panes,

    see

    tabbed panesparam tag 86parameters

    received by page 633supplying without custom tags 261tiles, parameterizing 334Tomcat database pool 438

    pass-through attributes 93personal data, text input and text area

    105Peter Pan library example 317

    phasesApply Request Values 29illustration 29Invoke Application 30life cycle phases 28phase events 274, 296, 301phase listener example 301Process Validations 29Render Response 30Update Model 30

    phones,

    see

    cell phones, mobile clientspi mnemonic 44plugging connection leaks 433pooling

    connections, monitoring and removing 438

    maintaining pool 433prepared statements 438support in JDBC 433Tomcat database pool parameters

    438popup windows 587prefix mapping 19prefixes

    prefix mapping 19tag prefix convention 14

    prepared statementscache 436databases, using in 435pooling 438

    prerequisite knowledge 4presentation

    separation from business logic 283separation from business logic and

    beans 37Process Validations phase 29prompts, aligning 154properties

    bean properties 39defined 13indexed bean properties 40naming pattern for getters and

    settings 39, 40property editors 58

    corejsfIX.fm Page 652 Wednesday, May 12, 2004 2:26 PM

  • Index

    653

    property resolver 626property values

    beans, setting 54converting with property editors 58selecting from dialog 38string conversions 58

    Q

    queriesdisplaying results 180formatting results, code 182

    quiz applicationbacking beans 50code 45simple example 44

    R

    radio buttonsexample 140selection attributes 124selection tags 122using 124

    read/write access to bean properties 13readonly attribute 94realms

    application-specific 482configuring 481Engine or Host element 482

    redirectingnavigation 80requests, and scope 52

    redirecting from index.html file 20redisplay attribute 101reference implementation

    JavaServer Faces 4sample map and area tags 571tabbed pane 307XUL demo 506

    rel attribute 94relationships

    current document and link in href 94

    validating among multiple components 243, 600, 616

    Render Response phase 30rendered attribute 90renderers

    alternative, framework services 24calling converters from external 384content inclusion 409external 378facets 407mobile client component

    implementations 519render kit, selecting 629tabbed pane 403

    renderingHTML tags 92overview 25render kits, selecting 629

    request scope 51, 626request values, processing 362requests

    action listeners and events 281commandButton 115controller servlet 274decoding 27sessions 39, 53

    required attribute 90, 101required values, checking for 218resolve 82resolving

    default variable resolver 63initial term 62value-binding expressions 62, 64variable and property resolvers 626

    Resource Bundlesbook viewer example 318English resource bundle 100error messages, getting from 229keys in Rushmore example 404loadBundle core tag 86localizing tab text 403locating message strings in 238

    restoring state 254, 412ResultDataModel class 185

    corejsfIX.fm Page 653 Wednesday, May 12, 2004 2:26 PM

  • Index

    654

    resultsdisplaying query results 180large data set, displaying 581result sets, JSTL 185

    ResultSetDataModel class 185rev attribute 94rowclasses attribute 155rows

    deleting table rows 186deleting table rows, code 188orientation in data tables 165scrolling 201

    see also

    columns, tablesrows attribute 94, 101rules for navigation,

    see

    navigationRushmore application 282

    S

    sample applications,

    see

    examplessample code,

    see

    examplessaving state 254, 412

    cookies, saving state with 52URL rewriting, saving state with 53

    ScalarDataModel class 185SCAM mnemonic 134scopes

    application scope 53, 459bean scopes 51compatible bean scopes 58forwarding or redirecting 52most commonly used 53request scope 51session scope 52

    scripting attacks 108scrolling

    core JSF pager 203page widgets 202scrollbars 201, 202tables 201

    securityauthentication 440constraint URL pattern 479container-managed and logging 482

    container-managed, example 483handling consistently 479

    see also

    authentication, authorizationselect HTML tags 88select tags 122selection tags 122selectItems

    tag 86what to specify 134

    separation of concerns 12server, roundtrip to 396services, external, using with JSF 430servlets

    configuration for simple login example 18

    exception attributes 596servlet container services 503servlet mapping 19servlet request dispatcher in tabbed

    pane renderer 403Tomcat overview 4

    sessionsobjects, keeping alive during 39session scope 52, 626session scope lifespan 53tracking 52

    setup and installation 4shape attribute 94shortcuts

    application, remember whether deployed 35

    build process 12CSS and HTML tags 92pi mnemonic 44selectItems attribute mnemonic 134

    size attribute 94SOAP

    defined 492libraries required for 496

    sortingcolumns 194dataTable 191example 194models, overriding setRowIndex 192

    corejsfIX.fm Page 654 Wednesday, May 12, 2004 2:26 PM

  • Index

    655

    SortFilterModel class 194sorting model 193

    spinnerconverter 364custom component example 353custom components 351drawbacks 378JavaScript 396

    SQLbasics 431information sources 431

    stack trace, deciphering 630standard error message text 213standard JSF tags

    overview 84

    see also

    JSF, tagsstandard validation error messages 219standard validators 217state

    saving with cookies 52saving with URL rewriting 53

    state, saving and restoring 254, 412statements, prepared 435static navigation

    navigation rules 68overview 67

    stringscollecting 41conversion in beans 58

    see also

    message bundlesvalidation 217

    Strutstiles, installing 331validation, client-side 600

    style attribute 94styleClass attribute 90styles

    HTML tags 92subviews

    examples 316subview tag 86using 315

    Sun Java System Directory Server 450syntax, JSF versus HTML 14

    T

    tabbed paneschild components 401content inclusion 409custom component example 401, 402custom components 351example 304facets 401key features 402reference implementation 307renderer 403specifying content 403state, saving and restoring 412using 420

    tabindex attribute 94tables

    CSS classes for dataTable 177data tables 161database tables 179editing cell contents 173filtering 191headers and footers 167JSF components in 169models 185models, editing 186scrolling 201

    see also

    rows, columnssimple example 162simple example, code 164sorting 191sorting table columns 193styles 177

    tag handler class, how used 25tags

    buttons 111client-side validation 606core library 86custom tag validation 248event listener 290how they work 25HTML tags 87image display 108item selection tags 130

    corejsfIX.fm Page 655 Wednesday, May 12, 2004 2:26 PM

  • Index

    656

    tags (cont.)JSF tags, types of 85links 111messages 149packaging in JAR file 623prefix conventions 14

    see also

    core library, HTML libraryselection tags 122standard JSF 84tag class responsibilities 368tag handler, custom components 367text display 108text input attributes 100text input complete example 104text input examples 102writing client-side validation 606

    target attribute 94text

    displaying, tags 108error messages 213

    text areasattribute examples 102attributes 100complete example 104

    text fieldsattribute examples 102attributes 100complete example 104

    threads in MIDP 512tiles

    book viewer, using in 330, 332controllers 340extending 335installing 331nested 340parameterizing 334using 315

    title attribute 94Tomcat

    auto deploy 34database pool parameters 438database resource, configuration 436

    logs, finding 632overview 4realm configuration 481servlet container requirements 5starting 5

    tool support for framework services 25trace, deciphering stack trace 630translations

    message bundle encoding 42quiz application 46

    type attribute 94, 112

    U

    undeploying and Ant 35Unicode

    characters beyond 127 42encoding 42

    UNIX installation and setup 5Update Model phase 30uploads, supporting 561URLs for JSF 14user interface

    Battleship on mobile client 528error pages, customizing 595examples 561file uploads 561image maps 571large data set, displaying 581popup windows 587

    see also

    presentationUserBean

    code and explanation 39code in login application 9customizing instance of 54package 10properties 13

    usersLDAP example 465

    see also

    authorizationuser data, bean-managed 9

    UTF and encoding 42

    corejsfIX.fm Page 656 Wednesday, May 12, 2004 2:26 PM

  • Index

    657

    V

    validateDoubleRange tag 86validateLength tag 86validateLongRange tag 86validation

    bean methods 242bypassing 220classes 218client-side with Jakarta Commons

    Validator 615client-side, writing tag 606components, relationships among

    616credit cards 224CreditCard class 224custom tags 248custom validation 223custom validators, registering 240errors, displaying 219example 221examples 600HTML tags 92Luhn formula 238numeric range 217overview 206relationships among multiple

    components 243required values 218string length 217Struts and client-side validation 600using 205validators, standard 217

    validation and error handling 24validator

    attribute 90Struts client-side validation 602tag 86

    value attribute 90, 112value binding

    bean scopes 51bean value-binding expressions 41composite expressions 64

    custom components 357expressions 60resolvers for extending JSF

    expressions 626syntax 60use of single quotes in expressions 61value of converter attribute 211

    value change events 273, 275, 278valueChangeListener

    attribute 90, 101tag 86

    valuesHTML tags 92local values, why use 206submitting using hidden fields 411value-binding expressions 60

    variable resolver 626verbatim tag 86view IDs navigation 82view tag 86View,

    see

    MVCvisual development environments 21

    W

    WAPcompared to WML 506defined 505

    WAR filesdefined 10manual deployment 34phase tracker 300

    see

    also directory structureshortcuts 12web container and configuration files

    622web services

    Amazon Web Services 492example code 496Java Web Services Developer Pack

    492libraries 503primary benefit 493

    corejsfIX.fm Page 657 Wednesday, May 12, 2004 2:26 PM

  • Index

    658

    web services (cont.)search example 495using 492

    welcome file for simple login example 20widgets, page 202width attribute 94wildcards for navigation 81Windows installation and setup 5windows, popup 587wireless clients

    see also

    mobile clients, cell phones, J2ME, MIDP

    testing 514writing applications for 504

    wireless toolkit from Sun 514WML

    compared to WAP 506

    defined 505WSDL

    Amazon Web Services example 493defined 492what it specifies 494

    X

    XHTMLcell phones and 506defined 505

    XULdefined 505demo 506more information 506Mozilla browser 506

    corejsfIX.fm Page 658 Wednesday, May 12, 2004 2:26 PM