WebWork 提供了两种级别的错误信息,分别是actionError和fieldError.
actionError是这个属性是Collection类型,fieldError是HashMap类型
下面是用velocity在页面上得到错误信息的方法:
一、这是在页面上得到fieldError的信息:
#macro(FIELD_ERROR?$field)
????#if($fieldErrors)
????????#if($fieldErrors.containsKey($field))
????????????<table?width="100%"?border="0"?cellspacing="0"?cellpadding="0"?class="TipsDetail">
????????????????#set($result?=?$fieldErrors.get($field))
????????????????#foreach($msg?in?$result)
????????????????????<tr>
????????????????????????<td>
????????????????????????????<div?class="errorMessage">
????????????????????????????????$msg
????????????????????????????</div>
????????????????????????</td>
????????????????????</tr>
????????????????#end
????????????</table>
????????#end
????#end
#end因为fieldError是HashMap类型,所以这里要传入你要的错误信息对应的KEY,这个KEY下可能会对应多个错误信息,所以进行了一个FOR循环将所以的错误信息都取出。
二、这是在页面上得到actionError的信息:#macro(ACTION_ERROR)
????#if($actionErrors)
????????<table?width="100%"?border="0"?cellspacing="0"?cellpadding="0"?class="TipsDetail">
????????????#foreach($msg?in?$actionErrors)
????????????????<tr>
????????????????????<td>
????????????????????????<div?class="errorMessage">
????????????????????????????$msg
????????????????????????</div>
????????????????????</td>
????????????????</tr>
????????????#end
????????</table>
????#end
#end比起fieldError,actionError是Collection类型,只要一个FOR循环将所有的错误信息取出即可。
在何时用fieldError和actionError?
1.如果你想显示总体信息,那么actionError是一个好选择,因为对总体信息来说,不需要过细的划分;
2.但是如果你的信息要进行细致的划分,比如你在后台进行数据再次验证,对于传入的字段如果格式不符,对应生成相应的错误信息,那么这时候就要用fiedError了。