Метод исключения в валидации не работает в стойке 2

Я новичок в структуре 2.0. Я пытаюсь запустить свое первое небольшое приложение с перехватчиком и хочу использовать проверку только для точного метода.

Но он вызывает функцию проверки как перед заполнением, так и перед методом исключения. Может кто-нибудь, пожалуйста, скажите мне, что я скучаю.

Ниже приведен мой класс SampleAction.

package demo;

import com.opensymphony.xwork2.ActionSupport;

public class SampleAction extends ActionSupport {

private static final long serialVersionUID = 1L;
    public void validate()
    {
        System.out.println("validate() method called");
    }

    public String populate()
    {
        System.out.println("populate() method called");
        return "populate";
    }

    public String execute()
    {
        System.out.println("execute() method called");
        return SUCCESS;
    }
}

И Следующее - мой файл struct.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="default" extends="struts-default">       
        <action name="*Sample" method="{1}" class="demo.SampleAction">
        <interceptor-ref name="defaultStack" >
        <param name="validation.excludeMethods"> populate</param>
        <result name="populate">/first.jsp</result>
        <result name="success">/success.jsp</result>
        </action>
    </package>
</struts>

1 ответ

Решение

Изменить часть, где вы объявляете excludeMethods параметры к этому:

<interceptor-ref name="defaultStack">
    <param name="validation.excludeMethods">populate</param>
</interceptor-ref>

Обновить

От ValidationInterceptor Javadoc

alwaysInvokeValidate - по умолчанию имеет значение true. Если true, метод validate() будет всегда вызываться, в противном случае это не так.

программный - по умолчанию true. Если true и действие равно Validateable, вызовите validate() и любой метод, который начинается с "validate".

декларативный - по умолчанию true. Выполните проверку на основе XML или аннотаций.

Также читайте о проверке в Struts2 http://struts.apache.org/2.x/docs/validation.html.

Другие вопросы по тегам