Struts2中指定的校验文件不起作用的原因
转载请注意出处:http://blog.csdn.net/bettarwang/article/details/39801733
我们知道,假设要为某个Action指定校验文件。那么就要将"Action名-validation.xml"的校验文件放在与该Action在同一路径下,而且在struts.xml中指定<result name="input>的值,在input对应的文件里增加<s:fielderror/>就可以。
此时假设输入不符合校验规则,就不会跳转到对应的action。而是仍然跳转回input文件。并显示对应的校验提示。
可是自己在指定了校验文件之后,却发现始终不起作用,后来最终发现问题,原来是自己贪图方便,直接从别处复制过来校验配置文件的dtd信息。可是这个复制过来的dtd信息跟自己如今这个版本号的Struts所用的dtd信息并不同样,从而导致校验不起作用。
解决方法非常easy,就是在lib中找到自己所用的xwork-core文件。比方我的是xwork-core-2.3.16.3.jar。用解压工具查看当中的dtd文件。一般有多个。我查看的是xwork-validator-1.0.3.dtd,里面内容例如以下:
<? xml version="1.0" encoding="UTF-8"?> <!--
XWork Validators DTD.
Used the following DOCTYPE. <!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
--> <!ELEMENT validators (field|validator)+> <!ELEMENT field (field-validator+)>
<!ATTLIST field
name CDATA #REQUIRED
> <!ELEMENT field-validator (param*, message)>
<!ATTLIST field-validator
type CDATA #REQUIRED
short-circuit (true|false) "false"
> <!ELEMENT validator (param*, message)>
<!ATTLIST validator
type CDATA #REQUIRED
short-circuit (true|false) "false"
> <!ELEMENT param (#PCDATA)>
<!ATTLIST param
name CDATA #REQUIRED
> <!ELEMENT message (#PCDATA|param)*>
<!ATTLIST message
key CDATA #IMPLIED
>
仅仅要将以下的片段拷贝到校验文件里就可以:
<pre name="code" class="html"><!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
-->
后面尝试了一下。发现用xwork-validator-1.0.2.dtd中的配置信息也能够,这应该仅仅是版本号的问题,可是一定要是自己的xwork-core支持的版本号才行。
Struts2中指定的校验文件不起作用的原因的更多相关文章
- Struts2中validate数据校验的两种常用方法
本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器. 1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接 ...
- 用svn下载github中指定目录的文件
1.先用命令看看github的分支 svn ls https://github.com/BlueRiverInteractive/robovm-ios-bindings 输出: branches/ t ...
- ASP.NET中App_Code,App_Data等文件夹的作用
http://www.cnblogs.com/shiyu007/archive/2007/12/04/982264.html 1. Bin文件夹 Bin文件夹包含应用程序所需的,用于控件.组件或者需 ...
- c#中bin,obj,properties文件夹的作用
Bin 目录用来存放编译的结果,bin是二进制binrary的英文缩写,因为最初C编译的程序文件都是二进制文件,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/R ...
- 06. struts2中指定struts2处理的请求后缀
概述 默认情况下我们都是使用.action后缀访问Action. 其实默认后缀是可以通过常量"struts.action.extension"进行修改的. 我们可以配置Struts ...
- [C++] C语言及C++语言中包含的头文件名称,及作用
头文件主目录include 头文件目录中总共有32个.h头文件.其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个.这些头文件各自的功能如下,具体的作用和所包 ...
- Struts2中的校验框架
Struts2提供的客户端校验 尽管这种支持比较弱,但采用Struts2中的客户端校验时需要注意以下几点 1..将<s:form validate="true">的va ...
- Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效
问题:在Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效了,不但调转不过去还报404错误.不知 ...
- struts2中 jsp:forward 失败原因及解决办法
问题:在Struts2中<jsp:forward page="xxx.action"></jsp:forward>失效了,不但调转不过去还报404错误.不知 ...
随机推荐
- 【Android开源项目分析】android轻量级开源缓存框架——ASimpleCache(ACache)源代码分析
转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46379055 ASimpleCache框架源代码链接 https://github ...
- 更快地从IplImage转换成QImage
转:http://blog.sina.com.cn/s/blog_5c70dfc80100qzif.html 在Qt平台上使用OpenCV肯定会遇到从IplImage到QImage的转换问题,找了很多 ...
- DEBUG模式下, 内存中的变量地址分析
测试函数的模板实现 /// @file my_template.h /// @brief 测试数据类型用的模板实现 #ifndef MY_TEMPLATE_H_2016_0123_1226 #defi ...
- SVM(支持向量机)(一)
(整理自AndrewNG的课件,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) SVM(Support Vector Machines)系列会循序 ...
- EasyUI - Progressbar 进度条控件
效果: html代码: <div id="p" style="width:400px;"></div> JS代码: $(function ...
- python发送post和get请求
python发送post和get请求 get请求: 使用get方式时,请求数据直接放在url中. 方法一. import urllib import urllib2 url = "http: ...
- Appium Server 传递iOS参数
Appium server iOS Capabilities 参数 iOS Only Capability Description Values calendarFormat (Sim-only) ...
- 【ASP.NET Web API教程】2.1 创建支持CRUD操作的Web API
原文 [ASP.NET Web API教程]2.1 创建支持CRUD操作的Web API 2.1 Creating a Web API that Supports CRUD Operations2.1 ...
- 2015 Multi-University Training Contest 8
Hdu 5385 The path 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5385 题意:有一个联通的有向图,d(x)用来记录从1点到x点的最短 ...
- Android事件详解——拖放事件DragEvent
1.Android拖放框架的作用? 利用Android的拖放框架,可以让用户用拖放手势把一个View中的数据移到当前layout内的另一个View中去. 2.拖放框架的内容? 1)拖放事件类 2)拖放 ...