Метод исключения в валидации не работает в стойке 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.