Struts2中指定的校验文件不起作用的原因
2016-01-21 08:31
537 查看
转载请注意出处:/article/2958624.html我们知道,假设要为某个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支持的版本号才行。
相关文章推荐
- spring整合Morphia
- 怎么可以不了解Java8 Stream
- 自学Java Swing日志(一)
- 最大连续子序列问题的java实现
- Java编码规范
- Eclipse stm32 编辑 编译 下载 调试 ( ST-Link J-Link ) 环境搭建 (使用GNU ARM Eclipse)
- java中IO流的学习笔记(1、字节流写入数据)
- Java 理论与实践: 正确使用 Volatile 变量(转)
- Java并发编程之ConcurrentHashMap(转)
- JAVA缓存技术之EhCache(转)
- Eclipse编译class文件无法更新,以及资源文件未生效
- JAVA的字符集的部分汉字字节数的知识点
- ==和equals的区别
- Java实现配置加载机制
- Spring Boot MyBatis 连接数据库配置示例
- Java 配置加载机制详解及实例
- 【JavaWeb Structs2学习】 result设置以及默认Action设置
- Spring AOP原理
- Struts的属性驱动和模型驱动
- Java jstat的用法参考