Struts2中实现Validator

来源:互联网 发布:mysql的截取函数怎么用 编辑:程序博客网 时间:2024/06/08 13:10

我们知道当我们继承了struts-default,我们的Action就能使用defaultStack。那么我们就可以在validate方法里面添加一些验证信息。

一个登录程序验证:用户名必须是"Zhao"并且密码不为空才能登录成功;

LoginAction类:

package com.zcl.struts.validate;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {private String userName ;private String password ;public LoginAction(){}public String execute(){return SUCCESS ;}public void validate(){if(this.getUserName().length()==0){addFieldError("userName", "User Name is required") ;} else if(!this.getUserName().equals("Zhao")){addFieldError("userName", "Invalid User") ;}if(this.getPassword().length()==0){addFieldError("password","Password is required") ;}}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

登录界面,login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>  <s:head/>    <title>validator</title>  </head>  <body>  <table>  <form action="Login">  <s:textfield name="userName" label="User Name" /><br/>  <s:password name="password" label="Password" />  <s:submit value="Login" />  </form>  </table>  </body></html>

其中<s:head/>Struts2的一种样式。

登录成功界面success.jsp就打印一个“Success”即可。

配置struts.xml

<struts><package name="login" extends="struts-default"><action name="Login" class="com.zcl.struts.validate.LoginAction"><result name="input">/login.jsp</result><result name="success">/success.jsp</result></action></package></struts>  
我们到login.jsp界面如果什么都不写即提交显示如下:


如果填写了密码和用户名,但是用户名不对:


如果都正确即可登录成功。