在Struts操作中,如果我返回一个重定向标志设置为true的ActionForward,则一切都按预期工作,即请求最终在所需页面上。但是,当我将重定向设置为false时,它会产生404.重要的是要注意,我不是直接重定向到JSP(如在/WEB-INF/jsp/something.jsp中)而是重定向到URL(例如项目/搜索) )。
看起来像这样:
return new ActionForward("items/search/", true); // Works ok
return new ActionForward("items/search/", false); // Gives 404
任何想法我可能做错了什么?
答案 0 :(得分:2)
return new ActionForward("items/search/", false);
失败的原因很简单。
通过将redirect
设置为false
(您在ActionForward
的第二个参数中执行的操作),您实际上要求Struts检查您的逻辑名称(在您的情况下{{1} } {}对items/search/
中的映射。
我很确定在您的ActionMapping
中,struts-config.xml
)没有<forward>
映射,因此,HTTP items/search/
。
阅读ActionForward
Documentation以了解其工作原理。
希望这有帮助!