您的位置:首页 > 编程语言 > Java开发

struts2 实现输入校验之validate方法

2014-09-14 21:14 573 查看
在Struts2中,有很多方式可以实现输入校验,有手工实现输入校验,基于验证框架的输入校验等方法。

这次我主要介绍通过重写validate方法校验。

关于struts2的环境搭建,我就不说了。

直接打开我们的Action类:

package com.struts.login.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
public String username;
public String userpsd;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpsd() {
return userpsd;
}
public void setUserpsd(String userpsd) {
this.userpsd = userpsd;
}
public String execute() throws Exception {
System.out.println(username + " " + userpsd);
if ("admin".equals(username) && "admin".equals(userpsd)) {
System.out.println("1");
return SUCCESS;
}
else {
addFieldError("username", "用户名或密码错误!");
System.out.println("2");
return LOGIN;
}
}
public void validate() {
if (null == username || "".equals(username)) {
addFieldError("username", "用户名不能为空");
}
else if (null == userpsd || "".equals(userpsd)) {
addFieldError("userpsd", "密码不能为空");
}
}
}

注意,这里面多了一个validate方法,其作用就是对视图页面中传过来的数据进行验证,验证的规则就是方法中的if条件,当某个数据不合规则时,通过addFieldError,将错误信息保存起来,而Struts2就会跳转到input视图(即struts.xml文件中配置了input类型的result)。视图页面就会将错误信息显示到视图页面中。

<pre name="code" class="html"><pre name="code" class="html"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="utf-8">
<title>注册</title>
</head>

<body>
<div align="center">
<h1>注册</h1>
<s:fielderror></s:fielderror><!-- 显示错误信息 -->
<s:form action="Login" method="post" namespace="/action">
<s:textfield name="username" size="20" label="用户名" />
<s:password name="userpsd" size="20" label="密码" />
<s:submit value="登录" />
</s:form>
</div>
</body>
</html>


在上面视图页面中,我们可以通过<s:fielderror></s:fielderror>标记显示addFieldError方法封装的错误信息,当然,也可以不写。

最后,说下几个问题:

①使用validate()验证失败时(即数据不符合规则),Struts2会将请求转发到名为input的result所对应的视图页面。

②错误信息可以使用<s:fielderror></s:fielderror>标记来显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐