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

nitin pericherla updated WW-4940:
---------------------------------
    Comment: was deleted

(was: Thanks for your response, we are interested in using your suggested 
approach, but were unable to get the desired result in our testing.

 
<field name="sampleField2"><field-validator type="fieldexpression"><param 
name="expression"><![CDATA[ (((sampleField2.trim().equals("")) && 
(sampleField1.equals("N"))) || (!sampleField2.trim().equals(""))) 
]]></param><param 
name="param1">$\{getText("sample.col.samplefield2")}</param><key>errors.required</key><message>Default
 message</message></field-validator></field>
 

 
errors.required=Field \{param1} is required!
 

The *key* tag is not available so unable to use in xml, so we used
<message key="errors.required"></message>
 

‘param1’ is not recognized and throwing error as shown below: 

 

*error  Error 500: can't parse argument number test1*

 ** 

We added the ${param1} in property, 
errors.required=Field ${param1} is required!
 

the param1 value which was set  is not shown in error message and they are 
displayed like this below

 
 * is required.
 * is required.
 * is required.
 * is required.
 * is required.
 * is required.

Could you please share a working example?)

> Corrupted error message with getText
> ------------------------------------
>
>                 Key: WW-4940
>                 URL: https://issues.apache.org/jira/browse/WW-4940
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.3.34
>            Reporter: nitin pericherla
>            Priority: Major
>
> *Issue:*
> The dev team is running into an issue randomly in Strut2 validation, the 
> broken getText() function is diplayed in error messages as shown below and 
> this happens randomly , it depends on number of error messages and sequence 
> the way the error is displayed , we found that by formating the XML in 
> certain way would reduce these instances but randomly another error message 
> will turn to "getText" So far we have not found the best way to avoid these.
> , please check below for this issue
>  
> Background:
> During our migration from struts 1 to struts 2, we had to migrate STRUTS XML 
> Validation from struts1 to struts 2 validation as it has changed, Although 
> there are other ways but we used getText function to get the desired results 
> so we do not have to change how our error messages getting displayed. 
> Basically using the application resource file for getting column labels and 
> error message text.
>  
> *Validation Error:- You must correct the following error(s) before 
> proceeding:* 
>  * Error Message 1.
>  * Error Message 2.
>  * Error Message 3.
>  * *$\{getText("sample.col.samplefi*
>  * Error Message 4.
>  
>  
> *O**riginal struts 1 XML validation is migrated to struts 2 in this following 
> way*
> <field property="sampleField" depends="required">
>           <arg0 key="sample.col.samplefield1" />
> </field>
> <field property="sampleField2" depends="validwhen">
>           <arg0 key="sample.col.samplefield2" />
>           <var>
>           <var-name>test</var-name>
>           <var-value>
>                    <![CDATA[ (((*this* == null) and (sampleField == 
> 'somevalue')) or (*this* != null))]]>
>           </var-value>
>           </var>
> </field>
>  
> *Struts 2 XML Validation snippet*
>           <field name=" sampleField1">
>                    <field-validator type="requiredstring">
>                              <param name="trim">true</param>
>                        
> <message>${getText("errors.required",\{getText("sample.col.samplefield1")})}</message>
>                    </field-validator>
>           </field>
>           <field name=" sampleField2">
>                    <field-validator type="fieldexpression">
>                              <param name="expression">
>          <![CDATA[ (((sampleField2.trim().equals("")) && 
> (sampleField1.equals("N"))) || (!sampleField2.trim().equals(""))) ]]></param>
>                    
> <message*>${getText("errors.required",\{getText("sample.col.samplefield2")})}</*message>
>                    </field-validator>
>           </field>
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to