【问题标题】:How to access the properties from the Previous Jsp from the Custom Interceptor? [duplicate]如何从自定义拦截器访问上一个 Jsp 的属性? [复制]
【发布时间】:2014-02-04 12:29:20
【问题描述】:

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

我有一个 jsp 说 JSP1,它有一个带有 textInput 字段的表单,该字段具有 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 的 String 变量。它也未能达到目的。

如何获取拦截器的值?

【问题讨论】:

  • 很难理解你在问什么,如果这被误解了,对不起:(一般来说)你有一个表格,你可以设置值。此表单作为请求传递给 Web 应用程序。 Struts2 通过将值设置到对象上来处理请求(除其他外)。然后渲染一个视图。那么如何在拦截器中获取变量呢?好吧,这取决于您的拦截器在哪里...是设置参数之前还是之后? if before需要直接访问请求:stackoverflow.com/questions/1578998/… if after...
  • 然后您可以访问您的操作类并直接挖掘您需要的内容(并在您需要时从转换中受益)。其他人可以更清楚地演示这两种方法。
  • 当我们在action类中通过getter和setter获取表单中输入的值时,是否有类似的方法来访问自定义拦截器中的相同值?
  • 拦截器从请求中进行设置...在参数拦截器运行后(你的拦截器遵循这个)然后你可以从Action中获取参数Action action = (Action) actionInvocation.getAction(); 您需要创建一个接口并将操作强制转换为它,这样您就知道它可以做什么...如果操作必须在参数 之前拦截器然后你需要挖掘请求,因为这些值还没有设置。
  • 我想你会在这个链接上得到你的答案:[stackoverflow.com/questions/17650146/… [1]:stackoverflow.com/questions/17650146/…

标签: struts2 struts2-interceptors


【解决方案1】:

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

<interceptor-ref name="params"></interceptor-ref>

或

<interceptor-ref name="defaultStack"></interceptor-ref>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多