java - 如何在 JavaScript 警报框中打印 Struts2 ActionMessage

标签 java javascript html jakarta-ee struts2

我有一个 Action 类,它使用 addActionMessage(); 发送操作消息。

我想使用 JavaScript 警报框在 JSP 中显示该消息。

我尝试过

alert  ('<s:actionmessage/>');

但它显示未终止的字符串文字

最佳答案

<s:actionmessage/>标签generates an HTML像下面这样:

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

这会使用无效的 JS 代码破坏您的 javascript 函数:

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

解决方案是手动迭代消息,并使用 <s:property/> 自行构建输出。 ,而不是使用 <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>

还要记住将 actionMessage 中的单引号括起来。

关于java - 如何在 JavaScript 警报框中打印 Struts2 ActionMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29788779/

相关文章:

javascript - 使用 ng-options 选择时的绑定(bind)问题

javascript - 如何通过具有未知父名称的二级属性过滤json?

html - css:在 body 类中,简单文本有阴影但链接也有阴影?

html - 是否可以使用类 AND Fontawesome 预定义输入?

java - 在 for each 循环中使用 final

java - 如何下载 Magnolia cms 社区版?

javascript - AngularJS:ng-repeat in 具有独立作用域和 $last 的指令

html - 将 sass 文件夹添加到 codeigniter 公共(public)文件夹

java - 如何动态获取音乐文件(或任何文件)的文件夹名称

java - 了解 Java 热点 JIT 生成的用于 float 测试的代码