Struts2自定义错误消息

时间:2009-07-14 05:58:54

标签: struts2

我在我的应用程序中使用struts2并尝试使用“s:actionerror /”来显示错误消息。它显示得很好,但也出现了一个点(。),错误信息看起来很难看,并显示为列表。

有没有办法在struts2中使用cuatomize错误消息。

提前致谢。

5 个答案:

答案 0 :(得分:4)

Brian Yarger的答案是最完整的解决方案。另一方面,最简单的解决方案是使用CSS并修改li元素。

JSP:

<s:if test="hasActionErrors()">
   <div class="errors">
      <s:actionErrors/>
   </div>
</s:if>

CSS:

li .errors { list-style: none; }

答案 1 :(得分:1)

另一种解决方案是覆盖默认actionError输出的模板。

您可以在struts2核心jar中找到默认模板。如果你拉出template.simple / actionerror.ftl,你可以自定义它。您可以提出自己的模板并使用模板属性在s:actionerror标记中引用它,或者您可以保留相同的名称并将其放在/ template / simple中,它将用作默认值。

大多数模板都在freemarker中,尽管仍有一些模板的速度取决于你的struts2版本。两者都很容易使用模板引擎。

答案 2 :(得分:1)

我想kozmic的解决方案应该是:

JSP:

<s:if test="hasActionErrors()">
   <div class="errors">
      <s:actionErrors/>
   </div>
</s:if>

CSS:

div .errors li { list-style: none; }

使用他的CSS代码对我不起作用。

答案 3 :(得分:0)

您好我找到了摆脱点的解决方案。

<table align="center" width="70%" class="stats">
                        <tr>
                        <s:if test="hasActionErrors()">
                            <s:iterator value="actionErrors">
                                <tr>
                                    <td class="error">
                                        <img alt="error message" src="./images/cross.gif" width="10" height="10"/>&nbsp;<s:property escape="false" />
                                    </td>
                                </tr>
                            </s:iterator>
               </s:if>

试试这个。

答案 4 :(得分:0)

我知道这是一个老问题,但我想分享我的简单解决方案。这只是打印出每个错误消息而没有任何额外生成的html标记。然后,如果需要,可以将<s:property value="%{error}"/>包装在一些自定义html中。

<s:if test="hasActionErrors()">
    <s:iterator var="error" value="%{actionErrors}">
        <s:property value="%{error}"/>
    </s:iterator>
</s:if>