Struts2慢慢学之六----简单的数据校验

数据校验是在项目开发中不可缺少的一部分,用户登录时、密码验证时都需要,当然要做的首先是获得用户输入的内容,然后对内容进行验证,一般都是从数据库中读出然后校验,如果错误则显示提示信息,正确则进入用户主界面。

下面用一个简单小例子来说明下步骤:

1、index的表单

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="<%=basePath %>"/>
<title>Insert title here</title>
</head>
<body>
<h1>演示</h1>
<form action="user/user!check" method="post">
姓名:<input type="text" name="user.name"></input>
<br/>
年龄:<input type="text" name="user.age"></input>
<br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
提交时会有两个变量--user.name 和user.age传到server,然后调用struts.xml文件配置中的对应Action

2、struts.xml配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
	<package name="front" namespace="/user" extends="struts-default">

        <action name="user" class="com.myservice.web.UserAction">
            <result>/success.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>
很明显-当返回success时调用success.jsp,error则调用error.jsp

3、Action中的check方法内容

public String check(){
		System.out.println("name="+user.getName());
		System.out.println("age="+user.getAge());
		if(user.getName().equals("admin")&&user.getAge()==20){
			return SUCCESS;
		}else{
			this.addFieldError("name", "name is error");
			this.addFieldError("name", "name is too long");
			return ERROR;
		}
	}
在这里我们调用了addFieldError方法

4、error.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>验证失败</h2>
<s:property value="errors.name[0]"/>
<br>
<s:property value="errors.name[1]"/>
<s:debug></s:debug>
</body>
</html>
里面第三行是说明的添加了struts2的标签库,并且以s开头。

而倒数第四行和第六行是重点,errors.name[0]对应的就是我们在3中通过addFieldError方法,放入到name属性中的name is error,errors.name[1]则很明显是name is too long。倒数第三行是调试信息。

整个效果最后显示为:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值