Struts2校验框架

1、以前是在动作类的excute业务方法里写校验代码,这样是不好的,校验代码和业务逻辑代码混合,可读性差,而且增加维护难度。
2、我们现在使用validate或validateXxx方法校验。就是在动作类里重写ActionSupport类的validate()或放到自定义的validateXxx(),但是这样当字段较多的时候,也会很臃肿。
3、所以最好的办法就是定义一个动作类名-validation.xml或动作类名-动作名-validation.xml,并且保存在动作类同一目录下的xml校验配置文件。如动作类名为BAction,则该xml为BAction-validation.xml.
然后必须在xml校验配置文件中对每个校验字段配置校验器。

Struts2校验框架_第1张图片
image.png

校验器的配置方法有两种

字段型校验方式


Struts2校验框架_第2张图片
image.png

非字段型方式

Struts2校验框架_第3张图片
image.png

一般用第一种,其中的key是引用国际化。

Struts2校验框架_第4张图片
image.png

例子:

Struts2校验框架_第5张图片
image.png

User.java

public class User {
    private String name;
    private String password1;
    private String password2;
    private int age;
    private Date birthday;
    private String email;
        //get和set方法省略
}

注册动作类,注意一般要把pojo和动作类分开写,
不要动作类里还写上面那些字段。但是表单提交是提交到动作类的,也就是说动作类必须得有相同和字段取获取表单提交的值。这时候我们用到ModelDriver,可以看看这个http://blog.csdn.net/li_tengfei/article/details/6098145
···
package com.ljs.struts.action;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class RegisterAction extends ActionSupport implements ModelDriven {
private User user = new User();
public Object getModel() {
// TODO Auto-generated method stub
return user;
}
public String register() throws Exception {
return SUCCESS;
}
}

register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
">


  
  
  
    
        
        
        
        
        
        
        
    
  

style.css
设置label为斜体,出错就为红色和斜体,错误信息红色和加粗

.label {font-style:italic; }

.errorLabel {font-style:italic; color:red; }

.errorMessage {font-weight:bold; color:red; }

RegisterAction-Register.xml
记住Register的R要大写,虽然方法是小写,但是这里要大写,没有会出错。




    
        
            
        
        
            2
            6
            
        
    
    
        
            
        
        
            
            
            
            
        
    
    
        
            
            
            
            
        
    
    
        
            1
            150
            
        
    
    
        
            
        
        
            1990-01-01
            2017-01-01
            
        
    
    
        
            
        
    

RegisterAction.properties

Struts2校验框架_第6张图片
a.png

struts.xml





    
        
            /register.jsp
            /success.jsp
         
    

你可能感兴趣的:(Struts2校验框架)