How to print a Struts2 ActionMessage in a JavaScript alert box

前端 未结 1 492
抹茶落季
抹茶落季 2021-01-17 01:38

I have one Action class which is sending an action message using addActionMessage();.

I want to display that message in my JSP using a Jav

相关标签:
1条回答
  • 2021-01-17 02:07

    The <s:actionmessage/> tag generates an HTML like the following:

    <ul class="actionMessage">
        <li>
            <span>
                Your Message 1
            </span>
        </li>
        <li>
            <span>
                Your Message 2, and so on...
            </span>
        </li>
    </ul>
    

    This will break your javascript function with invalid JS code:

    alert('<ul class="actionMessage">
            <li>
          ... 
         ');
    

    The solution is to manually iterate over your messages, and build the output by yourself, with <s:property/>, instead of using <s:actionmessage/>:

    <s:if test="actionMessages!=null && actionMessages.size > 0">
        <script>
            var actionMessages;
            <s:iterator value="actionMessages" >
                // Iterate the messages, and build the JS String
                actionMessages += '-' + '<s:property />' + '\n';
            </s:iterator>        
            alert (actionMessages);
        </script>
    </s:if>
    

    Also remember to wrap the single quotes from your actionMessages.

    0 讨论(0)
提交回复
热议问题