velocity中获取fielderrors

参考下文,可以得到一个简单的错误信息提示:

用于fileUpload的错误提示

 

#if("$!fieldErrors" !="{}")

   #foreach($!msg in $!fieldErrors.get("upload"))

        alert("上传失败!\n\n$!msg");

   #end

#else

 

 

当然,struts要配置一下。

struts.xml要增加资源配置

<constant name="struts.custom.i18n.resources" value="globalMessages"/>

globalMessages.preporties中增加

 

struts.messages.error.file.too.large = test1

struts.messages.error.content.type.not.allowed = test2

即可。

 

 

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了

你可能感兴趣的:(职场,velocity,休闲)