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 >---
