Java 拦截器可以';t访问操作参数

Java 拦截器可以';t访问操作参数,java,jakarta-ee,struts2,interceptor,valuestack,Java,Jakarta Ee,Struts2,Interceptor,Valuestack,我正在为struts2拦截器创建一个示例。我创建了一个简单的登录页面,并使用自定义拦截器类对输入进行加密。但是拦截器正在从ValueStack读取输入值作为null 我不明白我做错了什么。我认为struts.xml和拦截器类是足够的数据。如果你还需要我的代码,请告诉我 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//

我正在为struts2拦截器创建一个示例。我创建了一个简单的登录页面,并使用自定义拦截器类对输入进行加密。但是拦截器正在从
ValueStack
读取输入值作为
null

我不明白我做错了什么。我认为
struts.xml
和拦截器类是足够的数据。如果你还需要我的代码,请告诉我

struts.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>
    <constant name="struts.devMode" value="true" />
    <package name="myPackage" extends="struts-default">
    <interceptors>
            <interceptor name="encrypt" class="com.keyur.struts2.interceptors.EncryptDecryptInterceptor"/>
        </interceptors>
        <action name="validatorAction" class="com.keyur.struts2.ActionClasses.validatorClass" method="execute">
        <interceptor-ref name="encrypt"></interceptor-ref>
        <result name="success">/success.jsp</result>
        <result name="input">/index.jsp</result>
        </action>
    </package>
</struts>

EncryptorDecryptor
是我定义的一个单独的类,它自己可以正常工作。

如果要访问参数,应该先使用
params
拦截器

<action name="validatorAction" class="com.keyur.struts2.ActionClasses.validatorClass" method="execute">
   <interceptor-ref name="params"></interceptor-ref>
   <interceptor-ref name="encrypt"></interceptor-ref>
   <interceptor-ref name="defaultStack"></interceptor-ref>
   <result name="success">/success.jsp</result>
   <result name="input">/index.jsp</result>
</action>

但是在
params
拦截器之后,它们应该在那里。

哦,是的,我明白了。因此,当我定义自己的拦截器引用时,默认的拦截器引用不会生效。对吗?对,你只是用你的拦截器定义了一个拦截器堆栈。您必须定义要使用的拦截器的完整堆栈。
<action name="validatorAction" class="com.keyur.struts2.ActionClasses.validatorClass" method="execute">
   <interceptor-ref name="params"></interceptor-ref>
   <interceptor-ref name="encrypt"></interceptor-ref>
   <interceptor-ref name="defaultStack"></interceptor-ref>
   <result name="success">/success.jsp</result>
   <result name="input">/index.jsp</result>
</action>
Map params = ActionContext.getContext().getParameters();