Struts Validation (1)

Struts Validation (1)

Struts Validation

在Form中设置valiate方法实现表单中元素的检验:


Form
   public ActionErrors validate(
            ActionMapping mapping,
            HttpServletRequest request) {
                
        ActionErrors errors 
= new ActionErrors();
                
        
if(getName().equals("")){
            errors.add(ActionMessages.GLOBAL_MESSAGE,
                
new ActionMessage("login.error.name.required"));
        }
                
        
if(getPassword().equals("")){
            errors.add(
"passError",new ActionMessage("login.error.password.requrired","str"));
        }
                
         
return errors;
    }

       
       在form中,如果有ActionErrors错误,会自动回到输入见面。

       将错误信息返回的方法,如下:

Jsp

    
<html:messages id="msg" property="passError">  --- 无 property 默认输出所有错误信息
          
<bean:write name="msg"/>
    
</html:messages>
    
    其中,html:message 替代 html:errors

    
<html:errors/>


Action

    
if(!"no1red".equals(name)){
        ActionMessages messages 
= new ActionMessages();
        messages.add(
"nameMessages",new ActionMessage("login.error.name.match"));
        messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("login.error"));
        saveMessages(request,messages);
        request.setAttribute(
"nameMatch", messages);
        
return mapping.findForward("fail");
    }
    
return mapping.findForward("succ");


Jsp:

    第一种用saveMessages的方法,在页面中显示错误信息:

    saveMessages(request,messages);


    <html:messages message="true" id="msg" property="nameMessages">
        
<%= pageContext.getAttribute("msg"%>          
    
</html:messages>
    
    property 的名称 nameMessages 和 Action 中的 nameMessages 向对应。    

    或者将 
<%= pageContext.getAttribute("msg"%> 用 <bean:write name="msg"/> 来替代。
    
    
<html:messages id="msg" message="true">  ---- 输出所有错误消息
         
<bean:write name="msg"/>     
    
</html:messages>

    
    第二种方法,用request.saveAttribute:
    
    request.setAttribute("nameMatch", messages);
    

    <logic:messagesPresent name="nameMatch">
         
<table border="1" bgcolor="yellow" width="100%" align="center"><tr><td>
            
<p>
                
<img src="/images/icon-warning.gif" border="0"
                  vspace
="2" hspace="10" align="center">
                
<bean:message key="warnings.heading"/>
            
</p>    
            
<ul>
                
<html:messages id="error" name="nameMatch">
                   
<li><bean:write name="error"/></li>
                
</html:messages>
            
</ul>
        
</td></tr></table>
        
<p>
   
</logic:messagesPresent>

    

你可能感兴趣的:(Struts Validation (1))