文档章节

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
博文 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
struts1-2,springMVC原理基本对比(单例,多例)-servlet与filter区别

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

tantexian
2016/06/21
322
0
3.2 Struts2基本应用及工作流程

 struts2流程 *.action-->web.xml(过滤器)-->struts.xml-->Action.java-->JSP等 3.2.1 简单Struts 2实例开发 1.建立一个Web项目 命名为“Struts2” 2.添加Struts 2框架支持 用MyEclipse......

JerryPan
2016/02/20
932
1
struts1和struts2的区别及各自流程

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

xiaoqqq
2015/03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux-scp 远程拷贝报错原因

刚拿到一台重装后的服务器,远程ssh都正常,但是一scp拷贝东西就报错: 本地确定是有scp命令的,而且如果是本地没有scp不会报后面那句lost connection,因此就是远程没有scp这个命令。因此在...

linuxprobe16
33分钟前
1
0
OSChina 周六乱弹 —— 谁小时候没当过熊孩子呀

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《行尸走肉》- amazarashi 《行尸走肉》- amazarashi 手机党少年们想听歌,请使劲儿戳(这里) @神话 :周五了,周末干啥...

小小编辑
57分钟前
41
2
docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
14
0
1: Cordova 配置WebView可以打开外部链接

一、问题:在使用Cordova生成的Android App中默认情况下WebView中的超链接,如果不是相对链接,会默认使用浏览器打开。 如果想用默认webview打开 解决方案:修改config.xml文件添加链接配置节...

wecloudnet
今天
1
0
Beetl介绍以及集成SpringBoot2.0 ---《Beetl视频课程》(1)

目的:引导阅读官方文档 目标:实现一个自己的博客 一、Beetl介绍 Beetl目前版本是2.9.3,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点。使得开发...

Gavin-King
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部