hi,
the current ujax post servlet writes back all eligible input values to
their respective properties. if the input values are empty strings,
properties with empty strings are created. i think this behavior is
not always desired. absent properties might mean something different
than properties with empty strings (null vs. ""). i can imagine the
opposite, too. where applications want all properties to be filled in.

this problem is even more important when dealing with non-string
properties. e.g. a number input which is not filled in, does not
automatically mean '0'.

there are several ways how to control this behavior:
1) do not include 'empty' values in the post.
this requires some javascript preprocessing of the form which removes
the empty inputs or mangles their names (i.e. removing the
'saveprefix').

2) ignore empty strings for non-existent, non-mandatory properties.
this way, no superfluous properties are created. but the application
must be aware of the fact that empty values might not create the
properties. if a property is already set, sending an empty string
would of course not remove the property but modify its value.

3) treat empty strings as 'null' value
this means, that empty strings do not create empty properties and
delete existing (non-mandatory) properties.

I think all the above could be handled with a default value hint:
./[EMAIL PROTECTED] = ""  --> treat them as empty strings (1).
./[EMAIL PROTECTED] = "ujax:ignore"  --> ignore them (2)
./[EMAIL PROTECTED] = "ujax:null"  --> remove them (3)
./[EMAIL PROTECTED] = "foobar"  --> "normal" default value behavior

where the first would remain the default behavior.

WDYT ?
regards, toby

-- 
-----------------------------------------< [EMAIL PROTECTED] >---
Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel
T +41 61 226 98 98, F +41 61 226 98 97
-----------------------------------------------< http://www.day.com >---

Reply via email to