I already updated to requiredLabel, so I vote we stick with that. :) Besides, requiredLabel actually makes more sense, since that's all it does. You could invert the logic you proposed so that if a required attribute is detected with a value of anything but "false", you consider that to trigger requiredLabel="true". At least that way you are driving the label off the client validation, rather than the other way around.
On Wed, Sep 11, 2013 at 12:00 PM, struts <str...@rgm.nu> wrote: > So as not to pollute the JIRAs too much with speculation or suggestions > that haven't been thought out, I'd like to have a discussion about the > "required" attribute here on the list. > > I propose that we revert the changes made in WW-3908, namely -- turn > "requiredLabel" back into "required." Then, to support the html5 required > boolean attribute, change "themes/simple/text.ftl" to check <#if > parameters.required?default(false)> required="required" </#if>. > > This is a backwards compatible change (from the themes/simple/text.ftl > perspective). It is also backwards compatible with templates made before > Struts 2.3.12. > > It has a side effect that modern browsers will enforce client-side > validation for text fields like this: > <@s.textfield name="whatever" required=true /> > > I believe this side effect to be universally beneficial, but I could be > wrong about that. > > CONS: > > * Some folks have already gone and updated their templates to change > "required" to "requiredLabel." These folks would have to go back and > revert that, unless logic was put in to see if requiredLabel was one of > "true" "false" or other. :-/ On the other hand, this frees up the > "requiredLabel" attribute to be a String again, and allow per-field > overriding of the default asterisk (*) character. > > * (maybe) Some folks may not want clients to enforce "required" in forms. > > PROS: > > * html5 required attribute, being specific to the way a tag is rendered, > should be handled in themes where rendering logic exists. > > * Avoids "required=false" problem in 2.3.15.1, which confusingly does cause > modern browsers to require a field. For this reason alone, "required" > should not be a dynamic attribute. > > * Backwards compatible with pre-2.3.12 templates. > > * (subjective) Tag usage feels more natural -- "required" sounds like a > boolean, "requiredLabel" sounds like a String. > > What do you guys think? > > --rgm >