[ https://issues.apache.org/jira/browse/WICKET-3269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12975882#action_12975882 ]
Sven Meier commented on WICKET-3269: ------------------------------------ > it makes sense that empty strings are converted to nulls, this is what 99% of > users expect. I have to disagree on this generalized statement. >what if the TextField holds an Integer? we cant push an empty string into the >model then, but we can a >null. nulls are more universal then empty strings. This is a straw man argument: This feature request has no intention to change anything about handling type conversion and/or null conversion of non-String types. It's about removing the special handling of the String type. >providing an application-wide setting also will not work as it will break >component libs that expect empty >strings to be converted to nulls. Do you have an example case where this would be problematic? >it is not a job of a converter to perform value->null conversions. converters >are there for type conversion, not string manipulation. Actually they do so already, see AbstractIntegerConverter subclasses as examples. >this can be toggled application-wide by using IComponentOnBeforeRenderListener >to toggle the setting to false This wouldn't allow to explicitly change the setting for a single component. IMHO this is the wrong decision. Could we get opinions from other devs on this issue? Thanks > Review AbstractTextComponent's handling of empty Strings in 1.5 > --------------------------------------------------------------- > > Key: WICKET-3269 > URL: https://issues.apache.org/jira/browse/WICKET-3269 > Project: Wicket > Issue Type: Improvement > Components: wicket > Affects Versions: 1.5-M3 > Reporter: Sven Meier > Assignee: Igor Vaynberg > Attachments: AbstractTextComponent_A.diff, > AbstractTextComponent_B.diff, WICKET-3269-test.patch, WICKET-3269.patch > > > Context: > With convertEmptyInputStringToNull set to 'true' (the default), > AbstractTextComponent converts empty strings to 'null'. > This works only if the component doesn't know its model type. > Problem: > In our application we would like to always keep empty Strings as they are. We > tried to use a ComponentInstantiationListener to set > convertEmptyInputStringToNull to 'false', but regretfully > AbstractTextComponent reverts this setting to 'true' in its constructor. > Proposals for 1.5 (either A or B): > A) Change default of convertEmptyInputStringToNull to 'false'. > - allows applications to keep empty strings as they are, > - if needed, clients can use a ComponentInstantiationListener to globally set > convertEmptyInputStringToNull to 'true' for the old default > B) Remove support for special handling of empty strings. > - no special handling in #convertValue(String[]) and #resolveType() needed, > - no more ambiguity whether ConvertEmptyInputStringToNull has any effect > (model type known or not), > - if needed, clients can use a custom Converter to convert empty strings to > 'null'. > See attached patches, note that no unit tests changes were required. > Thanks for your consideration. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.