在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了解其工作原理。
希望这可以帮助!