2016-02-29 3 views
0

Я пытаюсь выполнить проверку, как описано here (документация struts2). Мой класс:Проверка формы полей Struts2 не работает

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" />, поэтому активируется проверка перехватчика. Что мне не хватает?

EDIT:

Я также попытался non field validator:

<validators> 
    <validator type="required"> 
     <param name="fieldName">data</param> 
     <message>You must enter a value for bar.</message> 
    </validator> 
</validators> 

Он не попал ни.

ответ

1

Вы используете неправильный 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 в действие папка, НЕ в фасоль папка (это верно только для Посетитель Подтверждение)

+0

Это работало @Emaborsa? –

+0

Жаль, что я еще не пытался ... Я даю вам знать. Как вы относитесь к заявлению @Romans? Ты с ним согласен? – Emaborsa

+0

Нет, он просто путал действие с фасолью. –

Смежные вопросы