【问题标题】:How do I redirect from a custom Struts RequestProcessor class?如何从自定义 Struts RequestProcessor 类重定向?
【发布时间】:2015-04-17 19:17:16
【问题描述】:

我正在开发一个 Struts 应用程序。我只需要允许POST 方法请求来调用动作类。

为此,我编写了自定义 RequestProcess 类并重写了 processPreprocess 方法:

@Override
protected boolean processPreprocess(HttpServletRequest request,
        HttpServletResponse response) {
    if("POST".equalsIgnoreCase(request.getMethod())){
        return true;
    }else
        return false;
}

如果请求方法是GET我想重定向到index.jsp页面。

我不确定管理此重定向的最佳方法是什么?

【问题讨论】:

  • 您需要为所有操作禁用 GET,还是仅对特定操作禁用 GET?
  • 另外,您使用的是哪个版本的 Struts。请提供更多信息,以便我们为您提供帮助。
  • 我使用的是 Struts 1.3。是的,我只想为 POST 请求调用 Action.execute() 方法

标签: java jsp jakarta-ee model-view-controller struts


【解决方案1】:

一种方法是您可以编写自定义错误代码以响应您覆盖的方法,例如 response.getWriter().write("无效请求")。 根据您的项目配置进行转换。根据这些自定义错误代码,您可以从客户端(即请求的回调方法)重定向到您喜欢的任何页面。

【讨论】:

    【解决方案2】:

    如果你想重定向 GET 请求,那么你应该做类似的事情

    @Override
    protected boolean processPreprocess(HttpServletRequest request,
            HttpServletResponse response) {
        if("GET".equalsIgnoreCase(request.getMethod())){
            response.sendRedirect(request.getContextPath()+"/index.jsp");
            return false;
        }else
            return super.processPreprocess(request, response);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多