Struts校验器出现Attribute "short-circuit" must be declared for element type "validator".

在进行配置Struts2的校验文件时出现一下报错

此时我们的 <actionClass>-<actionAlias>-validation.xml的头为: 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC 
  		"-//Apache Struts//XWork Validator 1.0//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.dtd">

 通过查看xwork-validator-1.0.dtd文件:

我们看到下面并没有short-circuit,也就是说在1.0版本中还没有允许使用short-circuit。

<!ELEMENT validators (field*,validator*)>

<!ELEMENT field (field-validator+)>
<!ATTLIST field
	name CDATA #REQUIRED
>

<!ELEMENT field-validator (param*, message)>
<!ATTLIST field-validator
	type CDATA #REQUIRED
>

<!ELEMENT validator (param*, message)>
<!ATTLIST validator
	type CDATA #REQUIRED
>

<!ELEMENT param (#PCDATA)>
<!ATTLIST param
    name CDATA #REQUIRED
>

<!ELEMENT message (#PCDATA)>
<!ATTLIST message
    key CDATA #IMPLIED
>

我们再打开xwork-validator-1.0.2dtdxwork-validator-1.0.3dtd:

我们看到已经存在short-circuit只有1.0.2版本以上才允许使用短路校验器。

<!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
>

解决方法:

我们只需将<actionClass>-<actionAlias>-validation.xml的头修改为:

 <!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.3.dtd文件中找到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值