文档章节

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

一别经年
 一别经年
发布于 2014/06/13 21:17
字数 1204
阅读 11
收藏 0
点赞 0
评论 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
博文 173
码字总数 58546
作品 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
73
0
java--Struts2入门示例教程(五)

今天在做一个Struts2的简单实例,楼主看的是大学教科书-《JavaEE基础实用教程》第三章的例子。 由于书有些老了,加上Struts框架又做了一些更新。所以有些地方需要拿出来说下,让新人伙伴们能...

萧沐垚
2016/12/16
15
0
新书预告 :《Struts2技术内幕》 —— Struts2源码研究和Web开发研究

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

ddatsh
2011/10/26
1K
8
《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

在众多朋友的支持和鼓励下,《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中,难免会出现一些错误,希望大家能...

长平狐
2012/11/12
78
0
《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

在众多朋友的支持和鼓励下,《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中,难免会出现一些错误,希望大家能...

长平狐
2012/11/12
84
0
Java Web学习计划

--- 本月为入门阶段,从零开始,一步一步的做出一个实用的网站。 深入学习Java语言,初步掌握前端技术,使用JSP和MySQL完成一个简单的网站 第1周 Java高级编程学习目标:
1.深入了解JDK环境...

SVD
2016/12/01
55
0
Spring的控制反转和依赖注入

Spring的官网:https://spring.io/ Struts与Hibernate可以做什么事?   Struts,     Mvc中控制层解决方案     可以进行请求数据自动封装、类型转换、文件上传、效验… Hibernate,...

别叫小伙
2017/03/12
0
0
struts1-2,springMVC原理基本对比(单例,多例)-servlet与filter区别

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

tantexian
2016/06/21
322
0
Struts2学习(三):所有基本功能详解

总结 struts2的常用东东: 一、验证,包括声明式(XML)和编程式验证(java),常用于后台验证 1.在action中复写 validate() 方法,此方法是通用验证 2.创建validateXxx()方法,此方法是专用于X...

这个人很懒-啥都没写
2013/08/22
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

防火墙实例

3、一个包过滤防火墙实例 环境:redhat9 加载了string time等模块 eth0 接外网──ppp0 eth1 接内网──192.168.0.0/24 #!/bin/sh modprobe ipt_MASQUERADE modprobe ip_conntrack_ftp modp...

李超小牛子
3分钟前
0
0
TensorFlow 作用域与操作符的受限范围

variable_scope 影响变量和操作符 name_scope 只影响操作符 with tf.name_scope(""),使用空字符串将作用域返回到顶层 tf.variable_scope("") 相当于添加一个空层 import tensorflow as tf...

阿豪boy
13分钟前
0
0
Java面试基础篇——第六篇:常见Map类的区别

常见的map类有: HashMap, ConcurrentHashMap (Jdk1.8) , LinkedHashMap, TreeMap, Hashtable。 其中我们最常用的莫过于HashMap, 和并发情况下使用的ConcurrentHashMap了,它们的主要区别就在...

developlee的潇洒人生
15分钟前
0
0
崛起于Springboot2.X之前端模版freemaker(23)

1、配置文件 spring: freemarker: allow-request-override: false cache: true check-template-location: true charset: UTF-8 content-type: text/html ......

木九天
31分钟前
1
0
spring-boot:run启动时,指定spring.profiles.active

Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。 如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test......

夜黑人模糊灬
33分钟前
0
0
大数据分析挖掘技术学习:Python文本分类

引言 文本分类作为自然语言处理任务之一,被广泛应用于解决各种商业领域的问题。文本分类的目的是将 文本/文档 自动地归类为一种或多种预定义的类别。常见的文本分类应用如下: • 理解社交媒...

加米谷大数据
38分钟前
0
0
istio-0.8 指标监控,prometheus,grafana

配置: https://istio.io/docs/tasks/telemetry/metrics-logs/ https://istio.io/docs/tasks/telemetry/tcp-metrics/ envoy拦截请求>上报mixer>对接prometheus>grafana 效果截图: promethe......

xiaomin0322
39分钟前
0
0
公众号推荐

阿里技术 书籍:《不止代码》

courtzjl
42分钟前
0
0
关于改进工作效率

1.给不同的业务线建立需求群,所有的数据需求都在群里面提。 2.对于特别难搞定的事情,到对应的技术哪去做,有问题随时沟通。 3.定期给工作总结形成方法论。 4.学习新的技术,尝试用新的方法...

Avner
49分钟前
0
0
关于thinkphp 框架开启路径重写,无法获取Authorization Header

今天遇到在thinkphp框架中获取不到header头里边的 Authorization ,后来在.htaccess里面加多一项解决,记录下: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Rewrite......

殘留回憶
53分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部