• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > Struts2的输入校验实例代码

Struts2的输入校验实例代码

作者:雨点的名字 字体:[增加 减小] 来源:互联网 时间:2017-05-28

雨点的名字 通过本文主要向大家介绍了struts2项目实例,struts2登录实例,struts2开发实例,struts2入门实例,struts2简单实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在我们项目实际开发中在数据校验时,分为两种,一种是前端校验,一种是服务器校验:

   客户端校验:主要是通过jsp写js脚本,它的优点很明显,就是输入错误的话提醒比较及时,能够减轻服务器的负担,但是客户端校验并不是安全的,简单来讲就是防君子防不了小人。

   服务器端校验:最大特点就是数据安全,但是如果只有服务器端校验,会大大增加服务器端的负担。

所以一般在我们开发中,是客户端和服务器端校验相结合作用的。

那这篇文章,我只讲服务器端校验,在Struts2支持两种校验方式:

    代码校验 :在服务器通过编辑java代码完成数据校验

   配置校验: xml配置校验 通过xml配置文件完成数据的校验

(1)代码校验:

    代码校验分为三个步骤: 

步骤一、封装数据

步骤二、实现要校验的Action  必须继承ActionSupport

步骤三、覆盖Validate方法  然后完成业务逻辑数据的校验

用户界面 register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
 <head>
 <title>用户注册</title>
 </head> 
 <body style="text-align: center;">
 <table align="center" width="50%">
  <tr>
   <td style="color: red">
    <!-- <s:fielderror></s:fielderror> --> <!-- 这里是显示错误的地方 -->
   </td>
  </tr> 
 </table>
  <form action="${pageContext.request.contextPath }/login" method="post" >
   用户名:<input type="text" name="username"><br><br>
   密  码:<input type="text" name="password"><br><br>
     确认密码:<input type="text" name="password2"><br><br>
      <input type="reset" value="清空">
      <input type="submit" value="注册">
  </form>
 </body>
</html>
</div>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts> 
  <!-- 配置常量信息 -->
  <constant name="struts.devMode" value="true"></constant>  
  <package name="struts2" extends="struts-default" >
   <action name="login" class="com.study.Login.RegisterAction">
   <result name="success">/success.jsp</result>
   <!-- 在input视图中可以通过<s:fielderror/>显示失败信息 -->
   <result name="input">/register.jsp</result>
   </action>
  </package>   
</struts>
</div>

RegisterAction.java

import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport{
 private String username;
 private String password;
 private String password2;
 //这里我通过set方法封装数据 
 public void setUsername(String username) {
  this.username = username;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public void setPassword2(String password2) {
  this.password2 = password2;
 }
 @Override
 public String execute() throws Exception {
  return NONE;
 }
 //在服务器端需要完成对数据的校验
 @Override
 public void validate() {
  //测试是否得到属性值,证实已经得到
 System.out.println(username+"---"+password+"---"+password2);
 if(username==null || username.length()<6 || username.length()>20){
  //把错误信息保存到字段中
  this.addFieldError("username", "有户名输入不合法");
 }
 if(password==null || password.length()<6 || password.length()>20){
  //把错误信息保存到字段中
  this.addFieldError("password", "密码输入不合法");
 }else if( password2==null || password2.length()<6 || password2.length()>20){
  this.addFieldError("password2", "密码输入不合法");
 }else if(!password.equals(password2)){
  this.addFieldError("password2", " 两次密码不一致");
 }
  super.validate();
 }
}
</div>

运行结果:

 (2)框架校验

 框架校验也就是通过XML配置方式进行数据校验 ,这也是我们在企业开发的主流校验。

XML校验原理: 将很多规则代码已经写好只需要在xml文件中定义需要使用的校验规则即可。,所以大大减少了我们的开发时间。

 我先把步骤写一下:

     步骤一:编写JSP

     步骤二:编写Action 继承ActionSupport或者Validateable接口

   步骤三:封装请求参数

   步骤四:编写xml校验规则文件

    Xml校验文件的命名规则:   Action类名-validation.xml 对Action中所有的方法都执行校验

      举例命名规则RegisterAction-validation.xml

       同时要满足:Xml校验文件和Action类要在同一包下

 步骤一: register.jsp

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <title>用户注册</title>
 </head>
 <body style="text-align: center;">
 <table align="center" width="50%">
  <tr>
   <td style="color: red">
    <s:fielderror></s:fielderror>
   </td>
  </tr>
 </table>
  <form action="${pageContext.request.contextPath }/login.action" method="post" >
   <table width="60%" >
    <tr>
     <td>用户名</td>
     <td>
      <input type="text" name="username" >
     </td>
    </tr>
    <tr>
     <td>密码</td>
     <td>
      <input type="password" name="password" >
     </td>
    </tr>
    <tr>
     <td>确认密码</td>
     <td>
      <input type="password" name="password2" >
     </td>
    </tr>
    <tr>
     <td>年龄</td>
     <td>
      <input type="text" name="age" >
     </td>
    </tr>
    <tr>
     <td>邮箱</td>
     <td>
      <input type="text" name="email" >
     </td>
    </tr>
    <tr>
     <td>生日</td>
     <td>
      <input type="text" name="birthday" >
     </td>
    </tr>
    <tr>
     <td>毕业日期</td>
     <td>
      <input type="text" name="graduation" >
     </td>
    </tr>
    <tr>
     <td>
      <input type="reset" value="清空">
     </td>
     <td>
      <input type="submit" value="注册">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html>
</div>

  步骤二:RegisterAction.java

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class RegisterAction extends ActionSupport implements ModelDriven<User>{
 //手动创建一个对象
 private User user =new User();
 @Override
 public String execut



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Struts2的输入校验实例代码

相关文章

  • 2017-05-28Swift心得笔记之控制流
  • 2017-05-28mybatis基本实例详解
  • 2017-05-28Swift使用WKWebView在iOS应用中调用Web的方法详解
  • 2017-05-28Swift心得笔记之运算符
  • 2017-05-28Swift面试题及答案整理
  • 2017-05-28超全面的Swift编码规范(推荐)
  • 2017-05-28Swift教程之类的析构详解
  • 2017-05-28用Swift编写自动录音器
  • 2017-05-28MyBatis中的模糊查询语句
  • 2017-05-28Swift UILable 设置内边距实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Swift和C语言混合编程教程
    • Swift中的指针操作详解
    • 用Swift构建一个简单的iOS邮件应用的方法
    • Swift编程中实现希尔排序算法的代码实例
    • struts2实现文件下载功能
    • Swift 3.0基础学习之类与结构体
    • Swift数组详细用法解析
    • 简单分析Swift语言的一些基本特征
    • Swift学习笔记之构造器重载
    • Swift 编程语言入门教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有