struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henrik Brautaset Aronsen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (WW-3069) Migration from 2.0.x to 2.1.x: fieldError does not use the full parameter name as id
Date Wed, 01 Apr 2009 07:02:05 GMT

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

Henrik Brautaset Aronsen updated WW-3069:
-----------------------------------------

    Description: 
After upgrading from Struts 2.0.11 to 2.1.6, fieldErrors weren't displayed next to form fields
any more.   The validation still worked, because I could still see the errors by issuing a
<s:fielderror/>.

My form is a value on the action, and is addressed like this:
   <s:textfield label="Your e-mail address" name="form.email" theme="mytheme" />

I noticed that to access a separate value in fieldError in 2.1.6, I had to chop off "form.":
   <s:fielderror fieldName="form.email" /> <!-- doesn't show anything -->
   <s:fielderror fieldName="email" /> <!-- shows the error-->

Now, to be able to show my error using my template, I had to add an ID to my textfield:
   <s:textfield label="Your e-mail address" id="email" name="form.email" theme="mytheme"
/>

Then I had to change the default hasErrorField assignment in the controlheader.tpl template:
   <#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors[parameters.name]??/>
 <!-- does not work -->
   <#assign hasFieldErrors = parameters.id?? && fieldErrors?? && fieldErrors[parameters.id]??/>
 <!-- works as intended -->

And change way I fetched errors in my controlfooter.tpl:
   <#list fieldErrors[parameters.name] as error> <!-- does not work -->
   <#list fieldErrors[parameters.id] as error> <!-- works -->

Voila!  I can see field errors again.

Just to summarize:  To access a fieldError, I have to manually strip "form."from "form.email".
 I also have to set an additional ID on my form fields (with the stripped value) to be able
to access it from my template.  Is this the intended behaviour?


  was:
After upgrading from Struts 2.0.11 to 2.1.6, fieldErrors weren't displayed next to form fields
any more.   The validation still worked, because I could still see the errors by issuing a
<s:fielderror/>.

My form is a value on the action, and is addressed like this:
{code}
   <s:textfield label="Your e-mail address" name="form.email" theme="mytheme" />
{code}
I noticed that to access a separate value in fieldError in 2.1.6, I had to chop off "form.":
{code}
   <s:fielderror fieldName="form.email" /> <!-- doesn't show anything -->
   <s:fielderror fieldName="email" /> <!-- shows the error-->
{code}
Now, to be able to show my error using my template, I had to add an ID to my textfield:
{code}
   <s:textfield label="Your e-mail address" id="email" name="form.email" theme="mytheme"
/>
{code}
Then I had to change the default hasErrorField assignment in the controlheader.tpl template:
{code}
   <#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors[parameters.name]??/>
 <!-- does not work -->
   <#assign hasFieldErrors = parameters.id?? && fieldErrors?? && fieldErrors[parameters.id]??/>
 <!-- works as intended -->
{code}
And change way I fetched errors in my controlfooter.tpl:
{code}
   <#list fieldErrors[parameters.name] as error> <!-- does not work -->
   <#list fieldErrors[parameters.id] as error> <!-- works -->
{code}
Voila!  I can see field errors again.

Just to summarize:  To access a fieldError, I have to manually strip "form."from "form.email".
 I also have to set an additional ID on my form fields (with the stripped value) to be able
to access it from my template.  Is this the intended behaviour?



> Migration from 2.0.x to 2.1.x: fieldError does not use the full parameter name as id
> ------------------------------------------------------------------------------------
>
>                 Key: WW-3069
>                 URL: https://issues.apache.org/struts/browse/WW-3069
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.1.6
>            Reporter: Henrik Brautaset Aronsen
>
> After upgrading from Struts 2.0.11 to 2.1.6, fieldErrors weren't displayed next to form
fields any more.   The validation still worked, because I could still see the errors by issuing
a <s:fielderror/>.
> My form is a value on the action, and is addressed like this:
>    <s:textfield label="Your e-mail address" name="form.email" theme="mytheme" />
> I noticed that to access a separate value in fieldError in 2.1.6, I had to chop off "form.":
>    <s:fielderror fieldName="form.email" /> <!-- doesn't show anything -->
>    <s:fielderror fieldName="email" /> <!-- shows the error-->
> Now, to be able to show my error using my template, I had to add an ID to my textfield:
>    <s:textfield label="Your e-mail address" id="email" name="form.email" theme="mytheme"
/>
> Then I had to change the default hasErrorField assignment in the controlheader.tpl template:
>    <#assign hasFieldErrors = parameters.name?? && fieldErrors?? &&
fieldErrors[parameters.name]??/>  <!-- does not work -->
>    <#assign hasFieldErrors = parameters.id?? && fieldErrors?? && fieldErrors[parameters.id]??/>
 <!-- works as intended -->
> And change way I fetched errors in my controlfooter.tpl:
>    <#list fieldErrors[parameters.name] as error> <!-- does not work -->
>    <#list fieldErrors[parameters.id] as error> <!-- works -->
> Voila!  I can see field errors again.
> Just to summarize:  To access a fieldError, I have to manually strip "form."from "form.email".
 I also have to set an additional ID on my form fields (with the stripped value) to be able
to access it from my template.  Is this the intended behaviour?

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


Mime
View raw message