[ 
https://issues.apache.org/struts/browse/WW-2387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_42857
 ] 

Nils-Helge Garli commented on WW-2387:
--------------------------------------

Is this a portlet application? If so, in some cases, the value stack is 
preserved and restored between portlet phases which could explain why there are 
multiple text providers on the stack. It should only happen if you're not using 
the redirectAction result type from a form submit. 

> Text tag doesn't consider having several TextProviders in stack
> ---------------------------------------------------------------
>
>                 Key: WW-2387
>                 URL: https://issues.apache.org/struts/browse/WW-2387
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Other
>    Affects Versions: 2.1.1
>            Reporter: Sauli Ketola
>         Attachments: patchfile.txt
>
>
> The Text tag used for getting messages to the page will only look inside the 
> first TextProvider found in the stack. In my case I found that there were 
> three TextProviders in the stack so the page displays the correct message 
> only when the first TextProvider contains the message I'm looking for.
> Code from org.apache.struts2.components.Text.java (breaks after the 1st 
> TextProvider):
> <code>
> for (Iterator iterator = getStack().getRoot().iterator();
>              iterator.hasNext();) {
>             Object o = iterator.next();
>             if (o instanceof TextProvider) {
>                 TextProvider tp = (TextProvider) o;
>                 msg = tp.getText(actualName, defaultMessage, values, stack);
>                 break;
>             }
> }
> </code>
> The code will work if I insert for example
> <code>
> if(StringUtils.equals(msg, actualName)) //actualName is the default message 
> returned by the TextProvider if nothing is found.
>     continue;
> </code>
> before the break.

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

Reply via email to