Don't render action errors/messages when have null message
----------------------------------------------------------

                 Key: WW-3188
                 URL: https://issues.apache.org/struts/browse/WW-3188
             Project: Struts 2
          Issue Type: Improvement
    Affects Versions: 2.1.7
         Environment: Freemarker
            Reporter: Jasper Rosenberg
            Priority: Minor
             Fix For: 2.1.8


Often I will end up passing an actionMessage to be rendered via an url such as:

http://www.myco.com/myapp/doit.action?actionMessages=Display+This+Message

This message is often set dynamically in the result for a redirect, for example:
<result 
type="redirect">http://www.myco.com/myapp/doit.action?actionMessages=${actionMessages[0]}</result>

But of course there may be no actionMessage actually available, and so the url 
ends up: 
http://www.myco.com/myapp/doit.action?actionMessages=

In this case we end up with one null action message in the actionMessages list, 
and so when you use the actionmessage tag, you get a list with "null" as the 
message.

I worked around this by just overriding the actionmessage.ftl and 
actionerror.ftl templates to check that if the list has content, the first 
element also "?has_content".  This isn't terribly general though.  

I think a decent  improvement would be to just check each action message with 
?has_content (which checks for null and empty string) as you iterate and only 
render the "li" if it is true.  Then just only output the starting "ul" when 
hit the first one, and the terminating ul if there was a message with content 
found.


-- 
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