bruno 2003/07/23 14:08:55
Modified: src/blocks/woody/samples/forms form2_bind_bean.xml Log: removed some stuff left from the xml binding and added some clarifications Revision Changes Path 1.2 +35 -37 cocoon-2.1/src/blocks/woody/samples/forms/form2_bind_bean.xml Index: form2_bind_bean.xml =================================================================== RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/samples/forms/form2_bind_bean.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- form2_bind_bean.xml 23 Jul 2003 15:18:22 -0000 1.1 +++ form2_bind_bean.xml 23 Jul 2003 21:08:55 -0000 1.2 @@ -1,59 +1,57 @@ <?xml version="1.0"?> -<!-- Example to bind form2 form to Form2Bean --> -<wb:context - xmlns:wb="http://apache.org/cocoon/woody/binding/1.0" - path="/" > - - <!-- the email value will not be saved because of the @readonly --> - <wb:field id="email" path="email" readonly="true"/> - <!-- jxpath binds to nodes as well as to attributes --> - <!-- - <wb:field id="account" path="account/@size" /> - <wb:field id="number1" path="number" /> - --> - - <!-- one entry field in the client maps through aggregate fields --> - <wb:aggregate id="phone" path="." > - <!-- to multiple fields in the XML file --> - <wb:field id="number" path="phoneNumber"/> - <wb:field id="zone" path="phoneZone"/> - <wb:field id="cntr" path="phoneCountry"/> - </wb:aggregate> - - - <wb:field id="ipaddress" path="ipAddress"/> +<!-- Example binding to bind the "form2" form to the bean "Form2Bean" --> +<!-- The id attributes on the elements in this file map to widgets in the + form definition. The path attributes are JXPath expressions addressing + properties of the bean. --> + +<!-- It would be an interesting exercise to generate this file from + javadoc-tags in the bean using an xdoclet-like approach. --> + +<wb:context xmlns:wb="http://apache.org/cocoon/woody/binding/1.0" path="/" > + + <!-- the email value will not be saved because of the @readonly --> + <wb:field id="email" path="email" readonly="true"/> + <wb:field id="ipaddress" path="ipAddress"/> + + <!-- An aggregatefield is a special kind of widget that lets + the user edit the value of multiple widgets through one text box + (see also the form definition for how this works). In this case + it is used to map the different parts of a phone number to different + bean properties. --> + <wb:aggregate id="phone" path="." > + <wb:field id="number" path="phoneNumber"/> + <wb:field id="zone" path="phoneZone"/> + <wb:field id="cntr" path="phoneCountry"/> + </wb:aggregate> <!-- repeater requires unique identification mechanism of the row-nodes --> + <!-- (it is of course possible to implement other binding strategies) --> <wb:repeater id="contacts" parent-path="." row-path="contacts" unique-row-id="id" - unique-path="@id" - > + unique-path="@id"> + <!-- important note: the row-path is used inside jxpath-createPath context, - as a consequence it cannot have dependent children or predicates --> + as a consequence it cannot have dependent children or predicates --> <wb:on-bind> - <!-- executed on updates AND right after the insert --> - <wb:field id="firstname" path="firstName" /> - <wb:field id="lastname" path="lastName" /> - <wb:field id="phone" path="phone" /> - <wb:field id="email" path="email" /> + <!-- executed on updates AND right after the insert --> + <wb:field id="firstname" path="firstName"/> + <wb:field id="lastname" path="lastName"/> + <wb:field id="phone" path="phone"/> + <wb:field id="email" path="email"/> </wb:on-bind> <wb:on-delete-row> - <!-- chose on of these to test --> - <!-- - <wb:set-attribute name="row-state" value="deleted" /> - --> - <wb:delete-node /> + <wb:delete-node/> </wb:on-delete-row> <wb:on-insert-row> <wb:insert-bean classname="org.apache.cocoon.woody.samples.Contact" - addmethod="addContact" /> + addmethod="addContact"/> </wb:on-insert-row> </wb:repeater>
