Strusts2数据校验的方法一(通过Action中的validate()方法实现)
来源:互联网 发布:jni java传递byte数组 编辑:程序博客网 时间:2024/05/22 04:32
在web应用,输入校验是一个不可忽略的问题。
一般来说,数据校验包含两个方面:客户端校验和服务器校验。客户端校验指的是通过JavaScript代码检验用户输入是否正确;服务器端校验指的是在服务器端的程序通过检查HTTP请求信息校验输入是否正确。而客户端的检验只能简单的过滤用户输入,大量的数据校验一般都是服务器端校验。服务器端校验实现方式有两种:通过Action中的validate方法实现和使用XWork校验框架实现。
通过Action中的validate()方法实现校验
Struts2中提供了一个com.opensymphony.xwork2.Validateable接口,这个接口中只有一个validate()方法,继承这个类之后Struts2就可以直接调用validate(),所以就要把校验用户输入信息的代码边写进去。
之前一直继承的ActionSupport就是com.opensymphony.xwork2.Validateable接口的实现类,但是它对validate()方法是空实现,所以要重写。(需要注意的是validate()方法实在execute()之前执行的,如果校验过了才会调用execute()否则就会将错误添加到ActionSupport类的fieldErrors域中)
而且为了实现不同的校验逻辑,Struts2框架提供了一个validateX()方法来准确校验Action中的某一个方法,其中X表示处理逻辑的方法名。
例.下面通过一个实例说明validate()方法及validateX()方法的用法,该实例验证了输入的age的大小,如果在10~30之间符合要求,否则返回错误界面。
LoginAction.java
package com.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{ private static final long serialVersionUID=1L; private String name; private int age; private String tel; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String execute()throws Exception{ return "hello"; } public String log ()throws Exception{ System.out.println("log"); return "hello"; } public void validate(){ System.out.println("validate"); } public void validateLog(){ System.out.println("validatelog"); if(age<10||age>30){ addFieldError("age","age must be from 10 to 30!"); } }}
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> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="com.action.LoginAction"> <result name="hello">/hello.jsp</result> <result name="input">/validateLogin.jsp</result> </action> </package></struts>
index.jsp,hello.jsp,validateLogin.jsp主要代码如下
<%@ 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=UTF-8"><title>Insert title here</title></head><body> <center> <s:form action="login"> <s:textfield name="name" label="Name"></s:textfield> <s:textfield name="age" label="Age"></s:textfield> <s:textfield name="tel" label="Tel"></s:textfield> <s:submit method="log"></s:submit> </s:form> </center></body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@ taglib prefix="s" uri="/struts-tags" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <center> Name:<s:property value="name"/><br/> Age:<s:property value="age"/><br/> Tel:<s:property value="tel"/><br/> </center></body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@ taglib prefix="s" uri="/struts-tags" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <center> the your input <s:property value="age"/>that is wrong!<br/> <s:fielderror/> </center></body></html>
- Strusts2数据校验的方法一(通过Action中的validate()方法实现)
- Strusts2数据校验的方法二(通过XWork校验框架实现)
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
- strusts2下Action收集表单数据的方法概述
- (Struts2学习篇)Struts2数据校验-validate()方法实现
- Struts2输入校验以及错误信息处理(1)——用Action中定义的validate()方法进行校验
- struts2使用validate方法来实现对表单输入数据的校验操作
- Struts2中validate数据校验的两种常用方法
- struts2 实现输入校验之validate方法
- 5 Struts2输入校验(一)----validate方法-validateXxx方法
- Struts2-输入校验(重写validate方法)
- struts2对action中的方法进行输入校验(1)
- struts2对action中的方法进行输入校验(2)
- 对action中的某个方法进行校验
- Struts2之验证框架一(通过覆盖validate()方法)
- linux中的数据校验方法
- 验证数据的方法validate
- 《将博客搬至CSDN》
- 使用 dbms_file_transfer 方式测试增量传输表空间XTTS
- MongoDB shell操作
- linux 下的时间获取函数
- [学习笔记]stringByReplacingOccurrencesOfString返回值的两种情况
- Strusts2数据校验的方法一(通过Action中的validate()方法实现)
- SSH学习之Hibernate的核心接口
- Python+pyqt4 山寨美图秀秀的美肤功能
- 问题 R: 柱状图表
- 细说flask表单flask-wtf
- Android开发简历书写的各个要点
- find q hdu
- 兴奋!
- 2016 UESTC Training for Data Structures C 卿学姐与诡异村庄