Struts2 校验数据问题
我们会经常遇到一下问题,例如我在前端输入数据,把数据发送到和后台,我首先要校验这个数据,
比如说:前端必须输入一个日期类型的数据,后端才能正确接收,要是输入一个不是日期型的数据,
那么后端就要把数据打回去,并且提示或者跳转到错误页面。那么怎么去校验呢?
f废话不多说,直接添代码,最直观的方法。
前端代码:
<%@ page language="java" import="java.util.*" 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">
<html>
<head>
<base href="<%=basePath%>">
<title>首页</title> </head>
<body>
<form action="actions/user" method="post">
姓名:<input type="text" name="name"><input type="submit"value="提交">
</form>
</body>
</html>
我这里要向后台发送的是一个姓名的数据,姓名必须不能是空,必须是admin否则会跳到错误页面。
Java代码:
public class One_action extends ActionSupport {
private String name;//姓名
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String add() {
if(name==null|| !name.equals("admin")){
this.addFieldError("name", "name is Error");
return "error";
}
return SUCCESS;
}
}
add方法就是校验数据的方法。add方法调用的addFiledError方法
struts.xml的配置中文件代码:
<package name="student" extends="struts-default" namespace="/actions">
<action name="user" class="DataValidation.One_action" method="add">
<result name="error"> /user_add_error.jsp </result>
</action>
</package>
在Java中return “error” 的error一定和struts.xml中的result 中的name属性相对应。
当输出不正确的值是,就可以调到错误页面啦。
错误页面jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %><%--自定义标签 --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>'user.jsp'</title> </head> <body>
User add error;
<s:fielderror fieldName="name" theme="simple"></s:fielderror>
<br>
<s:property value="errors.name[0]"/>
<s:debug></s:debug>
</body>
</html>
这里用了自定义标签。
错误页面显示:
User add error;
- name is Error
name is Error
Struts2 校验数据问题的更多相关文章
- struts2 校验数据的有效性 2种方式
Struts2的数据校验: 数据的校验分为客户端校验和服务器端两种: 客户端校验:JS完成的校验.(为了提升用户体验.减少用户的输入错误) 服务器端校验:在后台的校验.(必须的.) 手动编码进行校验: ...
- 使用Struts2实现数据校验
使用Struts2实现数据校验 为什么需要数据校验呢?答案很简单,假如当你登录想要京东,这时就需要数据校验了如果不输入用户名的话,那么就不会登陆成功,并且会提示出"请输入用户名"的 ...
- (转)struts2:数据校验,通过XWork校验框架实现(validation.xml)
转载自:http://www.cnblogs.com/nayitian/p/3475661.html struts2:数据校验,通过XWork校验框架实现(validation.xml) 根据输入 ...
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种: 参考:struts2:数据校验,通过Action中的validate()方法实现校 ...
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种 Struts2中提供了一个com.opensymphony.xwork2.Valid ...
- struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通 ...
- Struts2 校验框架学习笔记
Struts2 校验框架 Struts2 和Struts1同样也提供了校验框架,但在Struts2 已经不再把校验框架做为一个插件,而是已经内置到了Struts2中,而且配置起来更为简单方便,功能也更 ...
- java之struts2之数据检验
1.使用struts2时,有时候需要对数据进行相关的验证.如果对数据的要求比较严格,或对安全性要求比较高时,前端 js 验证还不够, 需要在后端再进行一次验证,保证数据的安全性. 2.struts2提 ...
- Struts2 校验
Struts2校验格式: actionName-methodName-invalidation.xml 该配置文件必须和action类在同一个包下. <?xml version="1 ...
随机推荐
- [转]javascript中基本类型和引用类型的区别分析
基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确 ...
- bzoj 1085 [SCOI2005]骑士精神——IDA*
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1085 迭代加深搜索. 估价函数是为了预计步数来剪枝,所以要优于实际步数. 没错,不是为了确定 ...
- Java 传递可变参数和方法重载
形式:类型... 参数名 示例:public void show(int... a) {}; 可变参数在方法中被当作数组来处理 可变参数传值的四种方式: 一个值也不传,可变参数会接收到长度为0的数组 ...
- 解决spring 事务管理默认不支持SQLException等运行时异常
公司同事在定位一个bug时,发现spring默认的事务只支持运行时异常的回滚,对于像SQLException这样的非运行时异常,默认的事务机制不能处理,于是找了下解决的办法: 1.在捕获SQLE ...
- DHCP(六)
DHCP报文: DHCP共有八种报文,分别为DHCP Discover.DHCP Offer.DHCP Request.DHCP ACK.DHCP NAK.DHCP Release.DHCP Decl ...
- 1041 Be Unique
题意:找到一串数字序列中首个出现的不重复的数字. 思路:用哈希,因为数值大小在[1,10^4],所以可以直接开数组.输入数据时记录每个数字出现过的次数.然后遍历原序列,遇到第一个次数为1的数字就是所求 ...
- js判断是否是用微信浏览器打开
有时候微信开发,需要根据使用的浏览器不同,来进行不同的处理. 下面的代码,可以判断是否使用的是微信浏览器. <!DOCTYPE HTML> <html lang="en&q ...
- mongoDB的了解
一.什么是mongoDB? 1.MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能. 2.MongoDB 旨在为WEB ...
- Android开发笔记 TableLayout常用的属性介绍
今天看了安卓简单控件的布局方式,大概有绝对.相对.表格.线性.帧式布局五种方式,表格布局里面的一些属性相对来说比较复杂,下面主要谈谈表格方式布局的一些属性 TableLayout经常用到的属性有: ...
- Oracle11gR2--SEC_CASE_SENSITIVE_LOGON参数解析
在Oracle的11g之前的版本中密码是不区分大小写的(使用双引号强制除外). 在Oracle的11g以及以后的版本中对此有所增强.从此密码有了大小写的区分. 这个大小写敏感特性是通过SEC_CASE ...