一旦页面在我的Struts 2应用程序中捕获了错误,错误就会从我的资源包中正确显示,但是它们总是会显示大括号[]
例如
[first name must not be empty]
这些通过标签显示
<s:actionerror />
<s:iterator value="fieldErrors">
<s:property value="value" />
</s:iterator>
这些来自Action-validation.xml
并通过验证方法设置addFieldError()
这与我的主题设置为simple
有关吗?我无法通过其他帖子在文档或任何内容中看到任何内容......
答案 0 :(得分:1)
不,这与主题无关。看看prepareForSegue
方法。它返回map,其中value是一个字符串列表。
getFieldErrors
您的代码在地图上迭代,public Map<String, List<String>> getFieldErrors() {
return validationAware.getFieldErrors();
}
是一个列表。列表字符串将与周围的括号一起显示。
如果您只需要错误消息的值而不是密钥,那么您可以改用value
方法并迭代addActionError
。
如果你想迭代actionErrors
那么你就可以这样做。
fieldErrors
当然还有用于显示错误/消息的标签,请参阅Non-Form UI Tags。
答案 1 :(得分:0)
如果没有默认的xhtml
主题,它会在对象打印toString()
时渲染对象,即用括号格式化数组。
如果存在特定的布局,则渲染字段错误 渲染取决于主题本身。空(空或空字符串) 错误将不会打印。字段错误字符串将是html 默认情况下已转义。
显示错误的代码应该是
<s:if test="hasFieldErrors()">
<div class="errors">
<s:fielderror />
</div>
</s:if>