这两天搞数据的数据校验,云里雾里,客户端校验、服务器校验、基于框架的校验,到现在还晕着,先记下几个简答的吧,防止以后更乱。
基于框架的,就写了一个,因为写过别的种类,但都纠结在一起,剪不断理还乱的感觉。
先看Action吧,Action里面定义了name、pass两个成员变量,以及get set方法,再就是一个regist()方法,返回成功
第二,validation.xml,前缀要和Action名字一直,例如 Action-validation.xml,代码如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>登录名不能为空!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">4</param>
<param name="maxLength">15</param>
<message>登录名必须在4-15位之间</message>
</field-validator>
</field>
<field name="pass">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不能为空!</message>
</field-validator>
</field>
</validators>
第三,看我的页面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="<s:url action="gllRegist" namespace="/testquestion"></s:url>" method="post" >
<input type="text" name="name" value="${requestScope.name }">
<input type="text" name="pass" value="${requestScope.pass }">
<s:fielderror fieldName="name"/>
<s:fielderror fieldName="pass"/>
<input type="submit" value="确定">
</form>
</body>
</html>
最重要的红色字体部分,他会在输入错误时显示错误提示信息,绿色字体部分是保证在输入错误并且系统提了以后,用户输入的信息不至于丢失,仍旧会显示在网页上。struts,spring等的配置就不说了。
目前,这是最简单的一个例子了,做国际化提示信息总是不对,纠结中……