Struts2标签:Fielderrors标签

时间:2013-01-09 05:56:07

标签: java forms jsp struts2 tags

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

我将如何实现这一目标?

5 个答案:

答案 0 :(得分: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/>标签差得多......毕竟我们总是需要使用属性标签。

答案 1 :(得分:3)

您可以覆盖用于渲染错误的模板文件。将actionerror.ftl主题中的fielderror.ftlsimple文件从struts2-core jar复制到您的应用程序,并修改它们,不要使用ul / li标记。

答案 2 :(得分:3)

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

这种方法只有在你特别关心外观时才有效,而不是DOM本身。

答案 3 :(得分:3)

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

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

电子邮件是我的字段的名称。这样我们就不必修改CSS了。

答案 4 :(得分:-1)

这是一个教程,展示了Struts 2的ActionError和ActionMessage类的使用。

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

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

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

    <s:if test="hasActionMessages()">
      <div class="welcome">
        <s:actionmessage/>
      </div>
    </s:if>