文档章节

Struts2输入校验2(框架效验)———struts2第四讲

一别经年
 一别经年
发布于 2014/06/13 21:17
字数 1204
阅读 12
收藏 0

框架校验

注:本文系作者在看了浪曦的风中叶老师的struts2视频的个人总结,希望能帮助广大struts2的初学者。 

此处为了简便起见和知识重复性的避免,暂不考虑类型转换问题。 

第一步:(这一步和其他一样,这里从简)依旧是新建一个web project,命名为checkxml,导入struts2必须的包。在src目录下新建struts.xml,修改web.xml文件。 
第二步:将index.jsp改名为reg.jsp(这个不是必须的,事实上也没有必要,此处只是为了便于称呼)。Input.jap的代码如下 

Jsp代码  收藏代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  

  2. <%  

  3. String path = request.getContextPath();  

  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

  5. %>  

  6. <%@ taglib prefix="s"  uri="/struts-tags"%>  

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

  8. <html>  

  9.   <head>  

  10.     <base href="<%=basePath%>">  

  11.       

  12.     <title>My JSP 'index.jsp' starting page</title>  

  13.     <meta http-equiv="pragma" content="no-cache">  

  14.     <meta http-equiv="cache-control" content="no-cache">  

  15.     <meta http-equiv="expires" content="0">      

  16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  

  17.     <meta http-equiv="description" content="This is my page">  

  18.     <!--  

  19.     <link rel="stylesheet" type="text/css" href="styles.css">  

  20.     -->  

  21.   </head>  

  22.   

  23.     <body>  

  24.         <s:form action="reg">  

  25.             <s:textfield name="username" label="username"></s:textfield>  

  26.             <s:password name="password" label="password"></s:password>  

  27.             <s:password name="repassword" label="repassword"></s:password>  

  28.             <s:textfield name="age" label="age"></s:textfield>  

  29.             <s:textfield name="birthday" label="birthday"></s:textfield>  

  30.             <s:textfield name="graduation" label="graduation"></s:textfield>  

  31.   

  32.             <s:submit name="submit"></s:submit>  

  33.             <s:reset name="reset"></s:reset>  

  34.         </s:form>  

  35.   

  36.     </body>  

  37. </html>  


第二步:action 
在src目录下新建新建包cn.edu.hdu.action 在其中新建一个RegAction.java文件 
代码如下 

Java代码  收藏代码

  1. package cn.edu.hdu.action;  

  2.   

  3. import java.util.Calendar;  

  4. import java.util.Date;  

  5.   

  6. import com.opensymphony.xwork2.ActionSupport;  

  7.   

  8. public class RegAction  extends ActionSupport  

  9.   

  10. {  

  11.         private String username;  

  12.         private String password;  

  13.         private String repassword;  

  14.         private int age;  

  15.         private Date birthday;  

  16.         private Date graduation;  

  17.         public String getUsername() {  

  18.             return username;  

  19.         }  

  20.         public void setUsername(String username) {  

  21.             this.username = username;  

  22.         }  

  23.         public String getPassword() {  

  24.             return password;  

  25.         }  

  26.         public void setPassword(String password) {  

  27.             this.password = password;  

  28.         }  

  29.         public String getRepassword() {  

  30.             return repassword;  

  31.         }  

  32.         public void setRepassword(String repassword) {  

  33.             this.repassword = repassword;  

  34.         }  

  35.         public int getAge() {  

  36.             return age;  

  37.         }  

  38.         public void setAge(int age) {  

  39.             this.age = age;  

  40.         }  

  41.         public Date getBirthday() {  

  42.             return birthday;  

  43.         }  

  44.         public void setBirthday(Date birthday) {  

  45.             this.birthday = birthday;  

  46.         }  

  47.         public Date getGraduation() {  

  48.             return graduation;  

  49.         }  

  50.         public void setGraduation(Date graduation) {  

  51.             this.graduation = graduation;  

  52.         }  

  53.           

  54.         public String execute() throws Exception  

  55.         {  

  56.             return  SUCCESS;  

  57.         }  

  58.   

  59.   

  60.               

  61.               

  62.         }  

  63.           

  64.           




第三步:修改struts.xml文件 代码如下 

Xml代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!DOCTYPE struts PUBLIC  

  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   

  4.     "struts.apache.org/dtds/struts-2.0.dtd">  

  5.           <struts>  

  6.                     <package name="checkxml" extends="struts-default">  

  7.                             <action name="reg" class = "cn.edu.hdu.action.RegAction">  

  8.                                     <result name="success">/success.jsp</result>  

  9.                                     <result name="input">reg.jsp</result>  

  10.                             </action>  

  11.                     </package>  

  12. </struts>  




第四步: 在WebRoot目录下新建另一个视图 success.jsp 代码如下(此文件在这个效验中基本没有什么作用) 

Jsp代码  收藏代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  

  2. <%  

  3. String path = request.getContextPath();  

  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

  5. %>  

  6.   

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

  8. <html>  

  9.   <head>  

  10.     <base href="<%=basePath%>">  

  11.       

  12.     <title>My JSP 'success.jsp' starting page</title>  

  13.       

  14.     <meta http-equiv="pragma" content="no-cache">  

  15.     <meta http-equiv="cache-control" content="no-cache">  

  16.     <meta http-equiv="expires" content="0">      

  17.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  

  18.     <meta http-equiv="description" content="This is my page">  

  19.     <!--  

  20.     <link rel="stylesheet" type="text/css" href="styles.css">  

  21.     -->  

  22.   

  23.   </head>  

  24.     

  25.   <body>  

  26.     恭喜你  验证通过  </body>  

  27. </html>  



最后一步,也是本节真正内容所在 
  在cn.edu.hdu.action目录下新建一个名字与action对应的xml文件 
RagAction-validation.xml  代码如下: 

Xml代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!DOCTYPE validators PUBLIC  

  3.         "-//OpenSymphony Group//XWork Validator 1.0.2//EN"  

  4.         "//www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">  

  5.           

  6.         <!-- 框架校验部分 -->  

  7. <validators>  

  8.     <!-- 分别对每一个字段校验 -->  

  9.     <field name="username">  

  10.         <!-- 每一种校验标准 -->  

  11.         <field-validator type="requiredstring">  

  12.             <!-- field-validator下的一些属性标签  说白了 就是一些传入函数的参数 -->  

  13.             <param name="trim">true</param>  

  14.   

  15.             <!-- 出错信息 -->  

  16.             <message>username is required</message>  

  17.         </field-validator>  

  18.   

  19.     </field>  

  20.     <!-- 一下都和username类似 将不做批注 -->  

  21.     <field name="password">  

  22.         <!-- 每一种校验标准 -->  

  23.         <field-validator type="requiredstring">  

  24.             <!-- field-validator下的一些属性标签  说白了 就是一些传入函数的参数 -->  

  25.             <param name="trim">true</param>  

  26.   

  27.             <!-- 出错信息 -->  

  28.             <message>password is required</message>  

  29.         </field-validator>  

  30.   

  31.         <field-validator type="stringlength">  

  32.             <param name ="minLength">6</param>  

  33.             <param name ="maxLength">10</param>  

  34.             <message>  

  35.                 password should between ${minLength} to ${maxLength}  

  36.             </message>  

  37.         </field-validator>  

  38.   

  39.     </field>  

  40.   

  41.   

  42.   

  43.     <field name="repassword">  

  44.         <!-- 每一种校验标准 -->  

  45.         <field-validator type="requiredstring">  

  46.             <!-- field-validator下的一些属性标签  说白了 就是一些传入函数的参数 -->  

  47.             <param name="trim">true</param>  

  48.   

  49.             <!-- 出错信息 -->  

  50.             <message>repassword is required</message>  

  51.         </field-validator>  

  52.   

  53.         <field-validator type="stringlength">  

  54.             <param name ="minLength">6</param>  

  55.             <param name ="maxLength">10</param>  

  56.             <message>  

  57.                 repassword should between ${minLength} to ${maxLength}  

  58.             </message>  

  59.         </field-validator>  

  60.   

  61.     </field>  

  62.   

  63.   

  64.   

  65.     <field name="age">  

  66.         <!-- 每一种校验标准 -->  

  67.   

  68.         <field-validator type="int">  

  69.             <param name ="min">1</param>  

  70.             <param name ="max">150</param>  

  71.             <message>age should between ${min} to ${max}</message>  

  72.         </field-validator>  

  73.   

  74.     </field>  

  75.   

  76.   

  77.   

  78.   

  79.   

  80.     <field name="birthday">  

  81.         <!-- 每一种校验标准 -->  

  82.         <field-validator type="requiredstring">  

  83.             <!-- field-validator下的一些属性标签  说白了 就是一些传入函数的参数 -->  

  84.             <param name="trim">true</param>  

  85.   

  86.             <!-- 出错信息 -->  

  87.             <message>birthday is required</message>  

  88.         </field-validator>  

  89.   

  90.         <field-validator type="date">  

  91.             <param name ="min">2000-1-1</param>  

  92.             <param name ="max">2010-12-31</param>  

  93.             <message>birthday should between ${min} to ${max}</message>  

  94.         </field-validator>  

  95.   

  96.     </field>  

  97.   

  98.   

  99.     <field name="graduation">  

  100.         <!-- 每一种校验标准 -->  

  101.         <field-validator type="requiredstring">  

  102.             <!-- field-validator下的一些属性标签  说白了 就是一些传入函数的参数 -->  

  103.             <param name="trim">true</param>  

  104.   

  105.             <!-- 出错信息 -->  

  106.             <message>graduation is required</message>  

  107.         </field-validator>  

  108.   

  109.         <field-validator type="date">  

  110.             <param name ="min">2000-1-1</param>  

  111.             <param name ="max">2010-12-31</param>  

  112.             <message>  

  113.                 graduation should between ${min} to ${max}  

  114.             </message>  

  115.         </field-validator>  

  116.   

  117.     </field>  

  118.   

  119. </validators>  

输入校验(1)——struts2第三讲 | Struts2核心 拦截器(初识拦截器)——— ...

评论 共 1 条 请登录后发表评论

1 楼 ifox 2011-12-20 18:23

很好啊,学过但是忘 了。思路很清晰再看一遍就会了


本文转载自:http://javaweb.group.iteye.com/group/wiki/1511-struts2-input-validation-2-----the-framework-of-we...

共有 人打赏支持
一别经年
粉丝 17
博文 174
码字总数 60456
作品 0
西安
程序员
私信 提问
(总结)Struts1和Struts2的区别

以前学的时候我们就是直接接触struts2,也没太关心这个struts1,正好我们公司用的是struts1,上网看过很多写这方面的博文的,写的也都很好、讲解的很详细、但是各有各的优点、我就总结了一下拿...

IT妖姬
2014/10/21
0
0
.Java程序员从笨鸟到菜鸟之(四十一)细谈struts2(五)action基础知识和数据校验

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 一:首先看一下struts2中action的实现方式: 1.建立普通的pojo类:这种方式能够实现简单的action功能,但str...

长平狐
2012/11/12
76
0
新书预告 :《Struts2技术内幕》 —— Struts2源码研究和Web开发研究

http://www.iteye.com/topic/1117044 简单做一个新书预告,我写的《Struts2技术内幕》将在下个月问世。 这本书应该是国内比较少见的以研究Struts2的源码为主要目标的技术书籍。源码研究类的书...

ddatsh
2011/10/26
1K
8
struts1-2,springMVC原理基本对比(单例,多例)-servlet与filter区别

最近做项目用到了struts2,之前一直是用struts1和springMVC。感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比。 Struts1官方已经停止更新,现...

tantexian
2016/06/21
322
0
struts1和struts2的区别及各自流程

Action 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口。 • Struts 2Action类可以实现一个Action接口,也可实现...

xiaoqqq
2015/03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql 查询当天、本周,本月,上一个月的数据

今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1 近7天 SELECT * FROM 表名 wher......

BraveLN
55分钟前
2
0
Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构

前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍 看下Java层一个方法在c++层 MediaPlayer后续过程 frameworks/av/media/libmedia/MediaPlayer.cpp 找一个我们之前熟悉的setDa...

天王盖地虎626
今天
2
0
【Linux】【MySQL】CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行)

1、前言   框框博客在线报时:2018-11-07 19:31:06   当前MySQL最新版本:8.0.13 (听说比5.7快2倍)   官方之前表示:MySQL 8.0 正式版 8.0.11 已发布,MySQL 8 要比 MySQL 5.7 快 2 ...

Code辉
今天
3
0
oracle dg备库重建redolog:ora-00313,ora-00312

trace文件: Errors in file /crbank/dbs/app/product/diag/rdbms/rdbs/dbs/trace/dbs_mrp0_24445130.trc: ORA-00313: open failed for members of log group 8 of thread 1 ORA-00312: onl......

hnairdb
今天
1
0
深入分析Java I/O的工作机制 (一)

1.Java的I/O类库的基本架构 先说一下什么是类库:可以说是类的集合,类库包括接口、抽象类、具体类等。 I/O是机器获取和交互信息的主要渠道。 java在I/O上也一直在做持续的优化,在1.4版开始...

java菜分享
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部