【问题标题】:Is it possible to prevent GET calls for particular actions in Struts 2?是否可以防止 GET 调用 Struts 2 中的特定操作?
【发布时间】:2018-01-05 15:28:16
【问题描述】:

在我的应用程序中,我将所有表单作为 POST 请求发送:

<s:form method="POST">

但是当我像这样准备 GET 调用时我注意到:

www.domain.com?method:Save&param1=aa

调用了适当的操作。

我的问题:是否可以阻止对特定操作的 GET 调用?

所以如果我运行 www.domain.com?method:Save&amp;param1=aa ,将不会调用“保存”操作?

【问题讨论】:

  • 你为什么要练习这些过时的重量级框架?改用 Spring!
  • 这个项目很老也很大,所以这就是我仍然使用struts的原因..
  • 迁移到另一个框架会产生额外的成本。客户不能接受的。
  • @ArifMustafa 除了不是一个有用的评论之外,Spring 是“轻量级”的想法有点愚蠢。所有 S2 都是一个替代 MVC Web 应用程序系统。我可能不会将它用于新项目,但它“重”的说法与现实不符。

标签: java post get struts2


【解决方案1】:

您可以添加拦截器来拦截动作,如果方法不是 POST 则返回错误结果。如果您想了解如何配置结果,您可以阅读this 答案。

在拦截器实现中,您可以使用类似于this 答案的ServletActionContext.getRequest()

然后使用request.getMethod()获取HTTP请求的方法。

【讨论】:

  • 谢谢 我正在考虑这个解决方案,但我认为框架中还有另一个解决方案。
  • 我不确定您认为您可以在问题中添加什么。如果您使用的是 REST 插件,那么您有一个 http 方法到操作的映射。
猜你喜欢
  • 2014-04-25
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多