2

我目前正在为我的表单使用 Struts2 标记,并显示它的错误消息。我的问题是在 Struts2 标签中显示错误消息的默认标记是标签的使用<ul>。无论如何我可以改变这个吗?我希望错误消息显示为<span>不是列表。

我将如何实现这一目标?

4

5 回答 5

3

标签根据其主题呈现。然后问题变成:你如何改变主题?您可以为标签(将标签上的主题属性设置为简单)、页面、请求或一般更改它。

http://struts.apache.org/2.2.1/docs/struts-2-themes.html

我个人喜欢编写 html,即我不喜欢 struts2 默认主题的任何“帮助”。所以在我的 struts.xml 我只是使用:

<constant name="struts.ui.theme" value="simple" />

Web 开发人员应该知道 html。

更新

通常使用 YUI reset.css 所以我可能错过了这个......

如果您在操作上扩展 ActionSupport ,getFieldErrors()那么您可以使用<s:property value='fieldError["field_name"]'/>该方法当然会返回相关的错误消息字符串,而无需任何格式。

它的可读性并不比<s:fielderror/>标签差多少……毕竟我们需要一直使用属性标签。

于 2013-01-09T07:44:21.523 回答
3

您可以覆盖用于呈现错误的模板文件。将主题中的文件actionerror.ftlfielderror.ftl文件从jar 复制到您的应用程序并修改它们以不使用/标记。simplestruts2-coreulli

于 2013-01-09T09:54:41.967 回答
3

另一种选择是更改 UL 元素的 CSS。

这种方法只有在你特别关心外观而不是 DOM 本身的情况下才有效。

于 2013-01-09T13:46:34.997 回答
3

我遇到了同样的问题,我使用以下代码解决了我的问题

<s:if test="fieldErrors.get('email').size() > 0">
     <s:property value="fieldErrors.get('email').get(0)"/>
</s:if>

电子邮件是我的领域的名称。这样我们就不必修改 CSS。

于 2014-01-27T06:15:15.403 回答
-1

这里有一个教程来展示 Struts 2 的 ActionError 和 ActionMessage 类的使用。

http://www.mkyong.com/struts2/struts-2-actionerror-actionmessage-example/

  1. ActionError - 用于向用户发送错误反馈消息 - 通过 <s:actionerror/ > 显示

    <s:if test="hasActionErrors()">
      <div class="errors">
       <s:actionerror/>
       </div>
    </s:if>
    
  2. ActionMessage – 用于向用户发送信息反馈消息,通过< s:actionmessage/ >显示

    <s:if test="hasActionMessages()">
      <div class="welcome">
        <s:actionmessage/>
      </div>
    </s:if>
    
于 2013-01-09T06:18:17.510 回答