在Struts动作中,如果我将重定向标志设置为true的ActionForward返回,则一切按预期进行,即,请求最终显示在所需的页面上。但是,当我将重定向设置为false时,结果为404。需要注意的是,我不是直接重定向到JSP(如/WEB-INF/jsp/something.jsp),而是重定向到URL(例如,items / search) )。

看起来像这样:

return new ActionForward("items/search/", true);   // Works ok

return new ActionForward("items/search/", false);   // Gives 404


有什么想法我可能做错了吗?

最佳答案

return new ActionForward("items/search/", false);失败的原因很简单。

通过将redirect设置为false(您在ActionForward的第二个参数中进行了设置),实际上是在要求Struts根据items/search/中的映射检查您的逻辑名(在您的情况下为ActionMapping)。

我非常确定在您的struts-config.xml中没有(<forward>)的items/search/映射,因此没有HTTP 404

阅读ActionForward Documentation了解其工作原理。

希望这可以帮助!

10-08 08:24