Hello Guys,
I'm finding myself with an increasing need to param a value into the event (set it only if it does not already exist).
One example use case for this is form validation.
In my controller method for the form I need a validation result object, which contains all the errors and other failure information.
This object could come from two places - It could be that the user has been passed back to this form page after a failed validation, with the result object preserved in the event, or if one doesn't already exist and this is the first time viewing the form, I'll create a new result object for them.
This results in handler code that looks something like this:
<!--- Param the validation result into the object too. --->
<cfif NOT event.valueExists("ValidationResult")>
<cfset event.setValue("ValidationResult", Beans.ValidateThis.newResult()) />
</cfif>
This works just fine, but it's needlessly verbose. I'd like to propose a change to the event object API that makes this much easier - here are a couple of ideas:
event.paramValue('name', 'value');
or a modification to the current setValue() method, which adds a 3rd argument that defines if the value should be overwritten, if false and a previous value exists for the key then it's left intact.
event.setValue("name", "value", false);
Does anyone else have some ideas on this? am I looking at this situation in completely the wrong way? does something already exist like this?
Thanks.
Robert