Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struts2 如何从自定义拦截器访问上一个Jsp的属性?_Struts2_Struts2 Interceptors - Fatal编程技术网

Struts2 如何从自定义拦截器访问上一个Jsp的属性?

Struts2 如何从自定义拦截器访问上一个Jsp的属性?,struts2,struts2-interceptors,Struts2,Struts2 Interceptors,通过标记访问的动作类中使用作为属性的字符串是否存储在值堆栈中? 我有一个jsp,比如JSP1,它有一个带有文本输入字段的表单,该字段具有name=user 提交表单时,将调用Action类。它可以通过使用getter和setter访问它 But in a Custom Interceptor, how can i access it? 我试着从值堆栈中获取它 ValueStack stack = ai.getStack(); String s = stack.findString("user"

通过标记访问的动作类中使用作为属性的字符串是否存储在值堆栈中?

我有一个jsp,比如JSP1,它有一个带有文本输入字段的表单,该字段具有name=user

提交表单时,将调用Action类。它可以通过使用getter和setter访问它

But in a Custom Interceptor, how can i access it?
我试着从值堆栈中获取它

ValueStack stack = ai.getStack();
String s = stack.findString("user");
stack.set("user",sa.toUpperCase());
但它返回null

我还尝试在CustomInterceptor类中使用带有getter和setter的字符串变量。它也未能达到目的

如何获取拦截器的值?

在自定义拦截器之前调用defaultStack或params拦截器:



在使用指定的操作注册自定义拦截器之前,请在上面一行书写。

很难理解您的要求,如果这被误解,请道歉:(通常)您有一个表单,可以设置值。此表单作为请求传递给web应用程序。Struts2通过在对象上设置值(除其他外)来处理请求。然后渲染视图。那么如何在拦截器中获取变量呢?这取决于你的拦截器在哪里。。。是在设置参数之前还是之后?如果在您需要直接访问请求之前:如果在…之后,那么您可以访问actions类并直接挖掘您需要的内容(如果需要,还可以从转换中获益)。其他人可以更清楚地演示这两种方法。当我们通过action类中的getter和setter在表单中输入值时,是否有类似的方法来访问自定义拦截器中的相同值?拦截器从请求中进行设置。。。在参数拦截器运行后(拦截器跟随此拦截器),您可以从Action=(Action)actionInvocation.getAction()获取参数;您需要创建一个接口并向其强制执行操作,这样您就知道它可以做什么。。。如果操作必须在params拦截器之前,那么您需要深入挖掘请求,因为尚未设置值。我认为您将在以下链接上得到答案:[[1]:
<interceptor-ref name="params"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>