Struts2 手动验证
* 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法
* 要继承ActionSupport类或者实现Validateable接口
* 重写Validateable接口的validate()方法
* 前提是:要保证setUsername()、validate()、login()方法要按照这个先后顺序执行
* 如果登录失败,如何处理:
* this.addFieldError( key, value);
* key:错误提示字段
* value:错误提示信息
* 什么时候才是验证通过?
* 验证通过:1、map集合不存在;2、map集合存在并为空
* 验证不通过:map集合存在并且不为空
* 分析需求:
* 用户名不能为null ,""
* 密码不能为null, "" ,并且密码的长度6-12之间
* 针对所有业务方法进行验证还是针对某个指定业务方法进行验证?
* 重写的validate()方法,针对所有业务方法进行验证
* 重写的validate()方法加上要验证的指定的业务方法名(业务方法名的首字母大写),实现针对某个指定的业务方法进行验证
* 为什么要这样进行拼接?因为struts2框架底层拼接,如果不这样写,底层就找不到对应方法名
- index.jsp
- <s:fielderror></s:fielderror>
- <s:form name="loginForm" namespace="/validate" action="ValidateAction_login.action" method="post">
- 用户名:<s:textfield name="username"/><br/>
- 密码:<s:password name="pwd"/><br/>
- <s:submit value="登录"/>
- </s:form>
- <a href="${pageContext.request.contextPath}/validate/ValidateAction_test.action">test</a>
- @SuppressWarnings("serial")
- public class ValidateAction extends ActionSupport {
- private String username;
- private String pwd;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPwd() {
- return pwd;
- }
- public void setPwd(String pwd) {
- this.pwd = pwd;
- }
- //只验证Login 业务,不验证test,如果全部验证,把方法名携写作validate()
- public void validateLogin() {
- if(username==null || username.equals(""))
- {
- this.addFieldError("error", "用户名不能为空");//key:错误标示;value:错误提示
- }
- if(pwd==null || pwd.equals(""))
- {
- this.addFieldError("error", "密码不能为空");
- }else {
- String pattern="^[0-9a-zA-Z]{6,12}$";
- Pattern p=Pattern.compile(pattern);
- Matcher m=p.matcher(pwd);
- boolean b=m.matches();
- if(!b){
- this.addFieldError("error", "密码格式错误");
- }
- }
- }
- public String login(){
- System.err.println("1234567890-");
- return "success";
- }
- public String test(){
- System.err.println("987654321");
- return "success";
- }
- }
Struts2 手动验证的更多相关文章
- 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】
一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...
- struts2输入验证
1.方法 ① 基于Annotations的验证 ②基于XML配置的验证 http://blog.csdn.net/furongkang/article/details/692204 ...
- Struts2数据验证机制
1. 手动验证的实现 只需要在继承ActionSupport类的情况下,直接重写validate()方法即可.使用validate()方法可以对用户请求的多个Action方法进行验证,但其验证的逻辑是 ...
- struts2 的验证框架validation如何返回json数据 以方便ajax交互
struts2 的验证框架validation简单,好用,但是input只能输出到jsp页面通过struts2的标签<s:fielderror />才能取出,(EL应该也可以). 如果使 ...
- Struts2 框架验证
struts2框架验证(xml方式): * 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法 * 创建一个xml格式验证文 ...
- AngularJS实现表单手动验证和表单自动验证
AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证.一.手动验证 所谓手动验证是通过AngularJS表单的属性来验证.而成为AngularJS表单必须满足两个条件: 1.给for ...
- Struts学习之手动验证
* 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法 * 要继承ActionSupport类或者实现Validateable接口 ...
- AngularJS表单验证,手动验证或自动验证
AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证. 手动验证 所谓手动验证是通过AngularJS表单的属性来验证.而成为AngularJS表单必须满足两个条件:1.给form元 ...
- Struts2数据验证与使用Java代码进行数据验证
Struts2数据验证 使用Java代码进行数据验证 重写ActionSupport的validate()方法 对Action类的中所有请求处理方法都会进行验证! 对Action类的数据属性进行检查, ...
随机推荐
- Spark笔记-treeReduce、reduce、reduceByKey
参考资料: http://stackoverflow.com/questions/32281417/understadning-treereduce-in-spark http://stackover ...
- PHP之路——VC库
VC库:https://pan.baidu.com/s/1dF9LslV 密码:v7ap
- 转:一些MongoDB限制
文章来自于:http://www.infoq.com/cn/news/2013/11/mongodb-things 消耗磁盘空间 这是我的第一个困惑:MongoDB会消耗太多的磁盘空间了.当然了,这与 ...
- Linux内核实现多路镜像流量聚合和复制
Linux内核实现多路镜像流量聚合和复制: http://www.freebuf.com/tools/44308.html
- 哈希集合——hashSet
/** 哈希集合特点:存取顺序不确定,同一个哈希值的位置可以存放多个元素, 哈希集合存放元素的时候是先判断哈希地址值:hashCode()是否相同,如果不同 ...
- 类似NL的update更新
update b set b.object_name=(select a.object_name from a where a.object_id=b.object_id); create table ...
- poj1797 - Heavy Transportation(最大边,最短路变形spfa)
题目大意: 给你以T, 代表T组测试数据,一个n代表有n个点, 一个m代表有m条边, 每条边有三个参数,a,b,c表示从a到b的这条路上最大的承受重量是c, 让你找出一条线路,要求出在这条线路上的最小 ...
- 1036 : Trie图 (AC自动机)
题目大意: 输入 n 个目标单词和一个文本串,判断文本串中是否存在某些目标单词. 思路 赤裸裸的 AC自动机. 代码: #include<iostream> #include<cst ...
- <一>初探js特效魅力之选项卡05
初探js特效魅力05 接下来为大家介绍的选项卡的切换 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...
- sts 去掉启动的rss功能
STS(spring tools suite) 每次开启都显示,比较烦人,可以在设置中禁用掉,具体方法:window->Perferences,然后查找dashboard,将启动时展示dashb ...