关于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验证框架悲惨之旅,希望童鞋们不要犯类似错误,书此文警示世人
关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题的更多相关文章
- Struts2验证框架_xml验证失败
测试Struts2验证框架-->XML验证 启动tomcat后网页登录失败 Employee-validation.xml文件头如下: <!DOCTYPE validators PUB ...
- (七)Struts2 验证框架
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 验证简介 Struts2 基于Struts2 拦截器,为 ...
- JavaWeb -- Struts2 验证框架
1. 验证框架 示例 表单提交Jsp, reg.jsp <%@ page language="java" contentType="text/html; chars ...
- Struts2验证框架实例
今天写了个Struts验证框架的实例,总算把验证框架弄清楚了. 上一篇Struts实例的action没有继承ActionSupport类,虽然也可以实现action的功能,但是却不能应用Struts提 ...
- struts2学习(11)struts2验证框架1.验证简介、内置验证
一.Struts2验证简介: 二.struts2内置验证: 下面例子,需求是:为用户注册进行验证: com.cy.model.User.java: package com.cy.model; publ ...
- Struts2 验证框架 validation.xml 常用的验证规则
validation.xml 的命名规则和放置路径: 文件名:<ActionClassName>-validation.xml <ActionClassName>就是要验证的A ...
- struts2验证框架
如何做一个工号 用户 密码 验证登录页面? 答:1,先画一个login.jsp ,如何画呢?先引入Struts2标签库,利用Struts2标签库画登录页面:如下: 2,先进入useractiion,在 ...
- struts2验证框架1
<!--该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理.如果用户需要指定多个请求后缀,则多个后缀之间以英文逗 ...
- struts2学习(12)struts2验证框架2.自定义验证
一.例子需求: 对敏感词进行验证: 将struts包中的validators.xml文件拷贝一份到src目录下,在最后面添加自己的验证器: com.cy.validators.SensitiveWor ...
随机推荐
- System Services -> Memory Management -> About Memory Management
Virtual Address Space Memory Pools Memory Performance Information Virtual Memory Functions Heap Func ...
- PL/Sql 中创建、调试、调用存储过程
存储过程的详细建立方法 1.先建存储过程 左边的浏览窗口选择 procedures ,会列出所有的存储过程,右击文件夹procedures单击菜单"new",弹出 template ...
- 六款最佳Linux教育应用
导读 对教育行业的用户来说,有好几款专门的Linux发行版是专门面向教育行业的.本文将介绍适合教育领域的几款顶级发行版. 1.Edubuntu 位居榜首的是Edubuntu.顾名思义,Edubuntu ...
- Spring的事务传播属性,数据库的隔离级别
Spring事务的传播属性 REQUIRED 业务方法需要在一个事务中运行,如果方法运行时,已处在一个事务中,那么就加入该事务,否则自己创建一个新的事务.这是spring默认的传播行为. SUPPO ...
- Fixing the Great Wall
题意: 在一条线上,有n个坏的地方要修机器人修,机器人的移动速度V,若坏的地方立即被修花费ci,若没修,每单位时间增加d,出去机器人的开始位置,求修完n个地方的最小花费. 分析: 非常经典,求解“未来 ...
- IOS PUSH 实践操作~~~~
1.推送过程简介 (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远 ...
- DzzOffice添加动态壁纸例子-Bing每日壁纸
Bing每日壁纸介绍:bing网站每天会更新一张不同的精选图片. 此压缩包内的程序,可以自动同步更新cn.bing.com网站每天更新的图片,作为dzzoffice的壁纸使用.实现自动每天更换不同的云 ...
- BestCoder Round #75 解题报告
King's Cake [思路] 递推 公式:f(n,m)=f(max(m,n-m),min(m,n-m))+1,n>m [代码] #include<cstdio> #include ...
- ACM2050
问题描述: 平面上有n条折线,问这些折线最多能将平面分割成多少块? 样例输入 1 2 样例输出 2 7 答案是: 2n ( 2n + 1 ) / 2 + 1 - 2n = 2 n^2 – n + ...
- [HIve - LanguageManual] Subqueries
Subqueries in the FROM Clause Subqueries in the WHERE Clause Subqueries in the FROM Clause SELECT .. ...