Struts2 表单字段验证不起作用
Struts2 form-fields validation does not work
我正在尝试按照 here(struts2 文档)所述的方式实施验证。我的 Class :
public class FatturaAction extends BaseAction {
private static final long serialVersionUID = 6586322371651933659L;
private FatturaForm fatturaForm;
//getter and setter
}
FatturaForm
:
public class FatturaForm {
private Date data;
//getter and setter
}
我的 XML (FatturaAction-validaton.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="fatturaForm.data">
<field-validator type="required">
<message>You cannot leave the email address field empty.</message>
</field-validator>
</field>
</validators>
验证未命中,即使该字段为空。我正在使用 <interceptor-ref name="defaultStack" />
,因此激活了验证拦截器。
编辑:
我也试过 non field validator
:
<validators>
<validator type="required">
<param name="fieldName">data</param>
<message>You must enter a value for bar.</message>
</validator>
</validators>
也没命中。
您使用的 DTD 有误:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
最新版本 Struts 2 的正确版本是
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
还要确保您的 FatturaAction-validaton.xml 在 action 文件夹中,而不是在 bean 中 文件夹(仅适用于 访客 验证)
我正在尝试按照 here(struts2 文档)所述的方式实施验证。我的 Class :
public class FatturaAction extends BaseAction {
private static final long serialVersionUID = 6586322371651933659L;
private FatturaForm fatturaForm;
//getter and setter
}
FatturaForm
:
public class FatturaForm {
private Date data;
//getter and setter
}
我的 XML (FatturaAction-validaton.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<field name="fatturaForm.data">
<field-validator type="required">
<message>You cannot leave the email address field empty.</message>
</field-validator>
</field>
</validators>
验证未命中,即使该字段为空。我正在使用 <interceptor-ref name="defaultStack" />
,因此激活了验证拦截器。
编辑:
我也试过 non field validator
:
<validators>
<validator type="required">
<param name="fieldName">data</param>
<message>You must enter a value for bar.</message>
</validator>
</validators>
也没命中。
您使用的 DTD 有误:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
最新版本 Struts 2 的正确版本是
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
还要确保您的 FatturaAction-validaton.xml 在 action 文件夹中,而不是在 bean 中 文件夹(仅适用于 访客 验证)