[ https://issues.apache.org/jira/browse/SLING-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tobias Bocanegra closed SLING-180. ---------------------------------- > ujax post servlet: add @DefaultValue hint for empty strings > ----------------------------------------------------------- > > Key: SLING-180 > URL: https://issues.apache.org/jira/browse/SLING-180 > Project: Sling > Issue Type: Improvement > Components: microsling > Reporter: Tobias Bocanegra > Attachments: launchpad-r614568.patch > > > [from http://comments.gmane.org/gmane.comp.apache.sling.devel/1909] > 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) > where the first would remain the default behavior. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.