【问题标题】:How to avoid actionMessages/actionError generating ul li tags?如何避免 actionMessages/actionError 生成 ul li 标签?
【发布时间】:2014-09-17 07:30:29
【问题描述】:

在我的 Struts 2 应用程序中,跟随标签生成 ul li span 标签,我必须避免它。怎么可能?我也用theme="simple",不行。

<s:actionmessage />
<s:actionerror />

【问题讨论】:

    标签: java jsp struts2 ognl struts-tags


    【解决方案1】:

    使用迭代器标签来迭代actionMessagesactionErrors。该操作应扩展 ActionSupport

    <s:iterator value="actionMessages">
      <s:property/><br/>
    </s:iterator>
    
    <s:iterator value="actionErrors">
      <s:property/><br/>
    </s:iterator>
    

    【讨论】:

      【解决方案2】:

      使用您喜欢的 HTML 手动迭代它们并打印每条消息/错误:

      <s:if test="hasActionMessages()">  
          <div id="messagesDiv" style="border: 10px solid green;">
              <s:iterator value="actionMessages">
                  <span class="actionMessage">
                      <s:property />
                  </span>
              </s:iterator>
          </div>
      </s:if>
      
      <s:if test="hasActionErrors()">  
          <div id="errorsDiv" style="border: 10px solid red;">  
              <s:iterator value="actionErrors">  
                  <span class="errorMessage">
                      <s:property />
                  </span>  
              </s:iterator>  
          </div>  
      </s:if>
      

      应该保留&lt;span&gt;(或其他标签),以便在语义上分离消息(例如,明天用不同的 CSS 样式装饰它们,您无法通过将它们打印为简单文本来做到这一点)。

      否则,只需删除&lt;span&gt; 并在&lt;s:property/&gt; 后添加&lt;br&gt;

      【讨论】:

      • 不转义输出不是最好的主意,有人可以在错误消息struts.apache.org/docs/property.html中注入JavaScript
      • @LukaszLenart 我完全同意,这个答案已经很老了,当时我使用 HTML 消息,在服务器端剥离有害的 HTML 代码......在答案中没有提到它绝对是一个错误, 不过(我现在已经编辑删除了转义)。感谢您的反馈
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2014-07-25
      • 2014-01-06
      • 2022-07-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      相关资源
      最近更新 更多