gpt4 book ai didi

java - 验证拦截器中的排除方法在 strut 2 中不起作用

转载 作者:行者123 更新时间:2023-12-02 07:29:41 27 4
gpt4 key购买 nike

我是 struct 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>

最佳答案

将声明 excludeMethods 参数的部分更改为:

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

更新

来自ValidationInterceptor javadoc

alwaysInvokeValidate - Defaults to true. If true validate() method will always be invoked, otherwise it will not.

programmatic - Defaults to true. If true and the action is Validateable call validate(), and any method that starts with "validate".

declarative - Defaults to true. Perform validation based on xml or annotations.

另请阅读 Struts2 中的验证 http://struts.apache.org/2.x/docs/validation.html .

关于java - 验证拦截器中的排除方法在 strut 2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com