• 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题


    这是一个让我很头痛的问题,我是在一个其他的项目框架的基础上来开发新的项目。

    当使用struts验证框架时,突然发现这个验证不起作用了,我就纳闷了之前用这个开发的项目好好的怎么到我这就不能用了呢?

    xml文件头

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

     

    在不联网的情况下报

    www.opensymphony.com - [unknown location]

    在联网的情况下报

    Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://opensymphony.com/xwork/xwork-validator-1.0.2.dtd

    我就在网络上查找原因,其中我看到一个说是struts2被阿帕奇收购了地址变了变成了http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd

    我就把地址改成了

    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

    改过之后我一实验果然验证气作用了不报错了,我的内心是相当的happy啊,可我还没happy几分钟,悲剧就再次发生了,因为在断网的情况下还是报错。苍天啊可怜可怜我吧别再折磨我了。都崩溃了

    然后我继续google,发现还有有些盆友跟我一样遇到了类似的问题,但都没有发现解决方案,其中有一个是说把xwork-validator-1.0.2.dtd搞到本地,然后地址改成本地文件所在的路径,我觉得这个不靠谱,可能管用,但我不认为堂堂一个struts的框架会出现这种低级的做法。

    这里插一句,xwork-validator-1.0.2.dtd这个文件只是xml格式检验的标准,说是会在jar包中自动检索此文件,我就搜了一下在xwork-core-2.3.1.2中果然存在,但为啥还会报错呢于是呼就出现了我上面的所作所为。

    那我就纳闷了为啥就不起作用了此处省略1w字

    so我就把用这个框架开发好的项目jar包靠过来对比一下,靠我突然发现有木有有木有

    jar包版本不一样,我了个去,是谁是谁是谁把jar包升级了,咋不跟俺汇报一下,苍天啊大地啊欲哭无泪有木有

    so把jar包解压

    找到

    此文件xwork-validator-1.0.2.dtd,打开内容如下

     

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--
      XWork Validators DTD.
      Used the following DOCTYPE.
      
      <!DOCTYPE validators PUBLIC 
      		"-//Apache Struts//XWork Validator 1.0.2//EN"
      		"http://struts.apache.org/dtds/xwork-validator-1.0.2.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)>
    <!ATTLIST message
        key CDATA #IMPLIED
    >
    

    终于发现不一样的东西了

     

    此xml头应该是

     

    <!DOCTYPE validators PUBLIC 
      		"-//Apache Struts//XWork Validator 1.0.2//EN"
      		"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">

     

     

    so改好之后果然成功,管你有网没网畅通无阻啊有木有!!!

    好此上就是我的struts2验证框架悲惨之旅,希望童鞋们不要犯类似错误,书此文警示世人

  • 相关阅读:
    Selenium WebDriver 中鼠标事件(全)
    日常知识积累加不定期更新(一)
    动作手游实时PVP技术揭密(服务器篇)
    Java RMI之HelloWorld篇
    java中注解的使用与实例 (二)
    RPC原理及RPC实例分析
    动作手游实时PVP帧同步方案(客户端)
    java中注解的使用与实例(一)
    动作手游实时PVP技术揭密(服务器篇)
    AS3.0 几何结构 Point对象和Rectangle对象
  • 原文地址:https://www.cnblogs.com/xiohao/p/3595508.html
Copyright © 2020-2023  润新知