Java 拦截器可以';t访问操作参数
我正在为struts2拦截器创建一个示例。我创建了一个简单的登录页面,并使用自定义拦截器类对输入进行加密。但是拦截器正在从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//
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();