SSH学习(七)Struts2输入验证
来源:互联网 发布:淘宝上黄金是真的吗 编辑:程序博客网 时间:2024/04/30 13:56
原文来自搬砖工,如需转载请注明出处
博主SSH框架专栏请戳这里http://blog.csdn.net/column/details/14227.html
一、验证的分类
对于我们javaweb应用程序来说,对输入的数据进行验证是必不可少的,数据验证主要分为客户端验证和服务器验证。对于客户端验证,一般是用js实现,通过js函数进行参数验证。对于服务器端验证,就是使用的java代码来对数据进行验证。在Struts2中有专门的服务器验证。
二、Struts2验证
1.Struts2的验证分类
在Struts2中分为手动验证和自动验证,手动验证就是我们自己定义验证函数实现验证逻辑。自动验证则是利用Struts提供的验证,结合我们所写的配置进行输入验证。
2.使用Struts手动验证流程
在Action中实现validate方法,把所以的验证逻辑写在里面。然后把提示信息使用this.addFieldError(params,msg)将提示信息和参数绑定,以确保提示信息显示在正确位置。
3.使用自动验证
需要建立一个配置文件RegistorAction-validation.xml,RegistorAction只要你是对什么Action进行验证就写它的名称。然后在配置文件中写入配置信息就可以了,对什么参数使用什么验证,并且有什么提示信息。
注意:Struts输入验证需要使用Struts的标签创建表单,否则验证信息无法提示
三、实例
1.手动验证
首先创建一个RegistorAction
package com.study.action;import com.opensymphony.xwork2.ActionSupport;public class RegistorAction extends ActionSupport{private String username;private String password;private String addr;private String email;private int age;public void validate() {//只对用户名和密码进行非空验证if(username==null||username.trim().equals("")){String msg = "用户名不能为空!";this.addFieldError("username", msg);}if(password==null||password.trim().equals("")){String msg = "密码不能为空!";this.addFieldError("password", msg);}}public String execute() throws Exception {return SUCCESS;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}}两个页面,一个注册页面和成功页面
registor.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%@ taglib uri="/struts-tags" prefix="s" %><%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> </head> <body> <s:form action="registor" method="post"> <s:textfield name="username" label="username"></s:textfield> <s:password name="password" label="password"></s:password> <s:textfield name="addr" label="addr"></s:textfield> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="email" label="email"></s:textfield> <s:submit value="regist" label="regist"></s:submit> </s:form> </body></html>Success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%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%>"> </head> <body> hello world!,${username} </body></html>然后就是配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="example" namespace="/" extends="struts-default"><action name="registor" class="com.study.action.RegistorAction"><result name="success">/Success.jsp</result><result name="input">/registor.jsp</result></action></package></struts>验证效果
这就是struts2手动验证的实现实例
注意:必须使用struts标签来创建表单,否则不生效
2.自动验证
以手动验证做比较,将Action中的验证方法注释掉,然后我们创建一个RegistorAction-validation.xml,把文件放在Action对应的包下面。
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator Definition 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.dtd"><validators><field name="username"><field-validator type="requiredstring"><message>用户名不能为空!</message></field-validator></field><field name="password"><field-validator type="requiredstring"><message>密码不能为空!</message></field-validator></field></validators>如果需要Struts2的标签提示,一定得把文件声明写对,不然myeclipse是不会给提示信息的。自动实现的效果和手动验证一样,当然,大家可以把message里面的内容定义为资源文件进行管理。
以上就是Struts2输入验证的全部内容,或许有些地方总结不足,请多多指正。
- SSH学习(七)Struts2输入验证
- struts2(七)输入校验
- 黑马程序员---struts2学习笔记之七(表单验证)
- jsp struts2 学习(七) ----- 输入校验
- ssh学习:struts2的输入校验
- struts2学习(14)——输入验证(1)
- struts2 输入验证(服务器端)
- 【SSH (七)】 struts2整合hibernate3
- Struts2学习笔记(七)
- Struts2.1笔记(七):Struts2输入校验
- struts2输入验证--补充
- struts2输入验证流程
- struts2输入验证总结
- Struts2-输入验证
- Struts2的输入验证
- Struts2 的输入验证
- struts2输入验证
- struts2 --- 输入验证Validation
- 自定义表盘
- 集中式vs分布式
- 安装Git
- POJ 2187 Beauty Contest (凸包)
- Ubuntu 14.04 搭建 apt-get 服务器
- SSH学习(七)Struts2输入验证
- 解决tomcat服务器无法启动-java.net.BindException 端口被占用问题
- Android项目的持续集成:Gradle+SonarQube+Jenkins
- JSON的遍历方式
- LeetCode 374. Guess Number Higher or Lower
- Sizeof与strlen区别以及用法
- DBA
- 深挖SpringMVC_06_SpringMVC文件上传
- AppBarLayout、CollapsingToolBarLayout、ToolBar组合实现狂拽屌炸天头部效果