问题标签 [struts2-interceptors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
591 浏览

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

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

我有一个说 JSP1 的 jsp,它有一个带有name = user的 textInput 字段的表单

在提交表单时,会调用一个 Action 类。它可以通过使用 getter 和 Setter 来访问它。

我试图从值堆栈中获取它

但它返回null。

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

如何获得拦截器的价值?

0 投票
3 回答
1116 浏览

jsp - 没有修改器和访问器(setter/getter)的参数以及 Struts 2 中的参数拦截器

在下面的动作类中,我使用了参数拦截器。

以下是<s:form>

在这里,隐藏的表单字段extraParam没有被声明,因此在 action 类中没有 setter 和 getter。

在这种情况下,当提交此表单时,服务器终端上会出现以下消息。

严重:开发人员通知(将 struts.devMode 设置为 false 以禁用此消息):在“类操作”上设置“extraParam”时捕获意外异常。TestAction:错误设置表达式“extraParam”,值为 ['',]

params.excludeParams不排除extraParam动作类中的参数。

我们可以在使用参数拦截器时以某种方式防止此类异常吗?此类消息不必要地添加到操作消息中,并<s:actionmessage/>在根本不应该显示时通过 显示(如果使用)。


如果在操作类中将其paramsPrepareParamsStack替换为defaultStack,则不会出现此类消息。它只是给出如下警告。

警告:参数 [extraParam] 位于模式的 excludeParams 列表中!

请不要只是说,设置struts.devModefalse禁用此类消息。

0 投票
1 回答
273 浏览

java - 无法使用输入填充 HashMap

我在一个循环中有一些这样的输入:

而且,在我的java文件中,我有

但是,对于我的 jsp 中生成的每个输入,我的控制台显示:

所以我的 HashMap 为

0 投票
1 回答
8548 浏览

java - Struts has detected an unhandled exception: java.lang.NullPointerException

Hi I have this problem whit my code, i tried upload file to server and keep on database.

The first version was the same code without fileupload, and all worked good.

struts.xml

now, the execute on accionAnadirCliente

bean Cliente

and getters and setters.

ClienteDAO

nuevoCliente.jsp only contains information.

Now the exception.

thanks, Ivan.

edit: the exception line is this

0 投票
1 回答
67 浏览

java - struts2 拦截器和 webservlet

是否可以对没有关联操作的页面使用 Struts2 拦截器?试图实现一个拦截器,所以所有用户都必须登录。然而,我站点中的其他页面是 webservlet,不依赖于 action 或 struts。我怎样才能做到这一点?我真的不想创建动作和动作类只是为了使用拦截器。

0 投票
1 回答
628 浏览

java - 阻止特定操作的 Struts 2 验证

我在不同的动作类中有两个动作。两个动作是:

  • 第一个动作(字段:电子邮件)
  • 第二个动作(字段:电子邮件,名字)

两者都使用User对象来验证字段

并将类中的验证属性绑定User

现在的问题是它适用于1st action(不包括firstName作为字段),对于包括firstName我提供的字段的第二个动作

随着第一个动作停止工作,可能是要搜索firstName不存在的

那么,如何firstName仅对第二个动作进行验证?(不适用于第一次行动)

0 投票
2 回答
1196 浏览

servlets - 如何在 struts2-core 2.3.16.1 上访问 ServletRequestAware?

我将我的struts2版本从2.3.14更改为2.3.16.1,似乎最新版本不支持了ServletRequestAwareServletResponseAware我该怎么办?我在网上找不到任何东西。

代码

错误

当我尝试为其查找依赖项时,Maven 显示支持它的最新版本的 Struts2 是 2.3.14!

0 投票
2 回答
5487 浏览

security - 如何在Struts2上实现CSR防伪码?

我在我的 struts.xml 和所有表单中添加了一个拦截器,以防止跨站点请求伪造攻击。我想知道我是否应该做其他事情?例如检索令牌并与提交的表单匹配,以防它不会自动完成。

所有表格都有

0 投票
1 回答
1543 浏览

validation - struts2 验证和准备方法相关

在有一个 custprofileview显示包含客户所有详细信息的 JSP 页面的操作中,并且在我的 JSP 中,所有字段都像我的

并这样做,并且有一个调用 Action 的提交按钮updatecustprofile

updatecustprofile行动中,我没有直接映射属性,而是有一个 private CustprofileVO custprofileVO; 带有 setter 和 getter 的成员变量。

CustprofileVOClass 中,我有类似的字段emailphone以及所有其他字段及其 setter 和 getter 方法。

问题是:在updatecustprofile行动中,我正在实现Prepareable接口,在prepare()方法的实现中,我拥有custprofileVO.setDefaultID("Select");并设置了另外 4 个字段,但是当我通过单击提交按钮运行程序时,我进入NPE了第一行,即custprofileVO.setDefaultID("Select");

看起来框架没有实例化 CustprofileVO custprofileVOcustprofileVO如果我在该字段的设置上方手动实例化 (通过这样做custprofileVO = new CustprofileVO()它可以工作。问题是 - 理想情况下 struts2 框架应该给我它没有做的实例,想了解原因。

此外,如果我在准备方法中手动设置 custprofileVO它可以工作,但我也使用 XML 应用验证,其中我的字段名称是 custprofileVO.email,它的验证然后 是custprofileVO.phone它的验证。

当我尝试通过单击提交按钮验证运行时进行验证,但在屏幕上我看到所有字段的消息,因为所有文本框中的数据都被清空了。

为什么数据被删除?

0 投票
2 回答
952 浏览

java - 在 Struts 2 中使用拦截器时出现 NullPointerException

这是我的WelcomeAction课:

这是我的struts.xml文件:

我尝试使用拦截器,但是当我取消注释时它NullPointerException被抛出。

我是 Struts 2 的新手,想了解一下。我正在讨论拦截器并从教程中学习。