手动实现的客户端输入校验

来源:互联网 发布:python怎么打开idle 编辑:程序博客网 时间:2024/06/01 07:54

ActionSupport类里面有一个validate(),ActionSupport类提供的是空实现,我们只需要重写该方法,就可以实现手动校验客户端输入了,该方法校验的是该Action的所有的方法,不止是execute等等,实现客户端校验除了提供validate()实现外,还需要使用一个方法用于返回校验失败后的提示信息:addFieldError(String param , String message) ;param用于在JSP页面中输出提示信息的key

示例:

public class LoginAction extends ActionSupport{    private String username ;    private String password ;    //omit setter and getter method    @Override    public void validate()    {        if(username.equals("") || username.trim().equals(""))        {            addFieldError("user" , "用户名不能为空") ;        {        else if(password.equals("")||password.trim().equals(""))        {            addFieldError("user" . "密码不能为空") ;        }    }}

在JSP页面中可以使用Struts标签输入错误提示信息:

//如果有错误提示信息,则会输出,如果没有,则不会输出任何信息<s:fielderror />

也可以使用过ActionSupport类的一个方法来输出错误提示信息:

//该方法可以用于取得国际化信息ActionSupport.getText(String param) ;

上面所说的validate()校验方法用于校验所有的处理逻辑,如:execute()/login()/regist()等等处理方法,我们也可以重写validateXxx()形式的方法,用于校验指定的处理方法,如:validateExecute()/executeLogin()/executeRegist()等等。

public class LoginAction extends ActionSupport{    private String username ;    private String password ;    //omit setter and getter method    @Override    public void validateLogin()    {        if(username.equals("")||username.trim().equals(""))        {            addFieldError("user" , "用户名不能为空") ;        }        else if(password.equals("")||password.trim().equals("")        {            addFieldError("user" , "密码不能为空") ;        }    }}

上面的validateLogin校验方法用于校验指定处理方法,login(),也就是下面这个Action

<action name="login" class="com.chengxi.LoginAction" method="login">    ...</action>
1 0