Struts2中指定的校验文件不起作用的原因
? ? ? ? ? 轉(zhuǎn)載請(qǐng)注意出處:http://blog.csdn.net/bettarwang/article/details/39801733
? ? ?我們知道,假設(shè)要為某個(gè)Action指定校驗(yàn)文件。那么就要將"Action名-validation.xml"的校驗(yàn)文件放在與該Action在同一路徑下,而且在struts.xml中指定<result name="input>的值,在input對(duì)應(yīng)的文件里增加<s:fielderror/>就可以。
此時(shí)假設(shè)輸入不符合校驗(yàn)規(guī)則,就不會(huì)跳轉(zhuǎn)到對(duì)應(yīng)的action。而是仍然跳轉(zhuǎn)回input文件。并顯示對(duì)應(yīng)的校驗(yàn)提示。
? ? ?可是自己在指定了校驗(yàn)文件之后,卻發(fā)現(xiàn)始終不起作用,后來(lái)最終發(fā)現(xiàn)問(wèn)題,原來(lái)是自己貪圖方便,直接從別處復(fù)制過(guò)來(lái)校驗(yàn)配置文件的dtd信息。可是這個(gè)復(fù)制過(guò)來(lái)的dtd信息跟自己如今這個(gè)版本號(hào)的Struts所用的dtd信息并不同樣,從而導(dǎo)致校驗(yàn)不起作用。
? ? ?解決方法非常easy,就是在lib中找到自己所用的xwork-core文件。比方我的是xwork-core-2.3.16.3.jar。用解壓工具查看當(dāng)中的dtd文件。一般有多個(gè)。我查看的是xwork-validator-1.0.3.dtd,里面內(nèi)容例如以下:
<?
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 >
僅僅要將以下的片段拷貝到校驗(yàn)文件里就可以: <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"> -->后面嘗試了一下。發(fā)現(xiàn)用xwork-validator-1.0.2.dtd中的配置信息也能夠,這應(yīng)該僅僅是版本號(hào)的問(wèn)題,可是一定要是自己的xwork-core支持的版本號(hào)才行。
總結(jié)
以上是生活随笔為你收集整理的Struts2中指定的校验文件不起作用的原因的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: window,linux python2
- 下一篇: mongodb 启动时的警告问题
