服务器之家

服务器之家 > 正文

Struts2学习笔记(6)-简单的数据校验

时间:2020-05-15 10:27     来源/作者:meaijojo

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

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

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。倒数第三行是调试信息。

整个效果最后显示为:

Struts2学习笔记(6)-简单的数据校验

以上就是Struts2中简单的数据校验的全部内容,希望能给大家一个参考,也希望大家多多支持服务器之家。

标签:

相关文章

热门资讯

歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部