You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Don Brown (JIRA)" <ji...@apache.org> on 2008/02/16 14:02:44 UTC

[jira] Updated: (WW-1257) Added validation support to the ww:file tag

     [ https://issues.apache.org/struts/browse/WW-1257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Don Brown updated WW-1257:
--------------------------

    Fix Version/s:     (was: 2.1.1)
                   2.1.x

This looks like a cool feature, but the patch will take a bit more work:
* Different versions for xhtml and css_xhtml themes
* Error HTML should match other tags
* Why is the name+"FileName" bit in there?

> Added validation support to the ww:file tag
> -------------------------------------------
>
>                 Key: WW-1257
>                 URL: https://issues.apache.org/struts/browse/WW-1257
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Plugin - Tags
>    Affects Versions: WW 2.2.1
>         Environment: n/a
>            Reporter: Jeff Cunningham
>            Assignee: Rainer Hermanns
>            Priority: Minor
>             Fix For: 2.1.x
>
>
> Hi...i added some error logic to my ww:file tag to support validation for the file tag. This enables users to make the filename required, or to make the filetype (by checking the suffix) match only certain types. For my case, I was able to make the filename required, and ensure the filename ended with .jpg
> I'm sure the code I added to the webwork tag can be improved..right now it takes advantage of the fact that webwork creates a String by appending FileName to the name of the File object int the action...knowing that simplified the code needed in the ww:file tag, and made it very easy to add validation logic that follows the normal webwork rules.
> Here is my modified ww:file component:
> <#assign filename = parameters.name + "FileName"/>
> <#assign hasFieldErrors = fieldErrors?exists && fieldErrors[filename]?exists/>
> <#if hasFieldErrors>
> <#list fieldErrors[filename] as error>
>     <label class="feedback"><#rt/>
>              ${error?html}
>     </label><#t/>
>     <br />
> </#list>
> <#t/>
> </#if>
> <input type="file"<#rt/>
>  name="${parameters.name?default("")?html}"<#rt/>
> <#if parameters.get("size")?exists>
>  size="${parameters.get("size")?html}"<#rt/>
> </#if>
> <#if parameters.nameValue?exists>
>  value="<@ww.property value="parameters.nameValue"/>"<#rt/>
> </#if>
> <#if parameters.disabled?default(false)>
>  disabled="disabled"<#rt/>
> </#if>
> <#if parameters.accept?exists>
>  accept="${parameters.accept?html}"<#rt/>
> </#if>
> <#if parameters.tabindex?exists>
>  tabindex="${parameters.tabindex?html}"<#rt/>
> </#if>
> <#if parameters.id?exists>
>  id="${parameters.id?html}"<#rt/>
> </#if>
> <#if parameters.cssClass?exists>
>  class="${parameters.cssClass?html}"<#rt/>
> </#if>
> <#if parameters.cssStyle?exists>
>  style="${parameters.cssStyle?html}"<#rt/>
> </#if>
> <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
> />
> And here is an example snippet from a validation xml file. Note that the keys are stored in the property file for the action, and not included here. I obviously had a File object named file in my Action class...
>     <field name="fileFileName">
>         <field-validator type="requiredstring">
>             <message key="form.error.fileFileName.required"/>
>         </field-validator>
>         <field-validator type="fieldexpression">
>         	<param name="expression">fileFileName.endsWith(".jpg")</param>
>             <message key="form.error.fileFileName.fieldexpression"/>
>         </field-validator>
>     </field>
> Anyway..i thought adding the error logic to the file tag was fairly trivial, and would enable nice and simple validations like the above, with minimal work for the developer.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.