I've been investigating some i18n issues in the 2.1.x branch and found
that the search algorithm used by the Text tag differs from that of UIBean.
The Text tag iterates through the ValueStack looking for the first
TextProvider and invokes getText(...) on the first found.
The UIBean executes the OGNL expression "getText(String)", which matches
this method of the first TextProvider.
This works almost all the time, but I have two issues with it:
- the inconsistent search algorithm causes inconsistent behaviour when
there's something unexpected in the stack
(https://issues.apache.org/struts/browse/WW-2539)
- the OGNL expression is slow
(https://issues.apache.org/struts/browse/WW-1681) and fragile
(https://issues.apache.org/struts/browse/WW-2511)
I'm going to remove the hardcoded OGNL expressions from UIBean and Label
and replace them with the same algorithm used by Text. I would have
proceeded without saying so but I also discovered that the TestAction
used by the unit tests relies on getText being invoked directly by OGNL
rather than its TextProvider implementation, so the consequences may be
larger that I first imagined.
Please speak up if you see any potential issues.
regards,
Jeromy Evans
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]