Struts 2 级联下拉AJAX调用返回404错误排查咨询
可能导致404错误的原因及修复方案
- struts.xml配置语法错误
你提供的struts.xml中success结果的路径末尾多了多余的双引号,错误写法:
<result name="success">/pages/ajaxFragments/ruleType.jsp"</result>
多余的引号会导致Struts解析视图路径错误,修改为:
<result name="success">/pages/ajaxFragments/ruleType.jsp</result>
- AJAX请求路径问题
你的JS里用了相对路径请求getActionTypes.action,如果当前发起请求的页面和Action不在同一个上下文路径层级,就会拼接出错误的请求地址。建议改成绝对路径,JSP中可以直接拼接项目上下文:
var actionUrl = '${pageContext.request.contextPath}/getActionTypes.action?selectedTicketType=' + ticketType;
同时你原URL里?&多了一个多余的&符号,也会导致部分服务器解析参数异常,直接改成?即可。
- Struts2后缀配置不匹配
检查你项目的Struts2核心配置,确认是否配置了.action作为请求后缀。如果配置的后缀是.do或者无后缀,请求地址的后缀也需要对应修改。 - 视图文件路径/大小写不匹配
确认ruleType.jsp确实存放在项目的/pages/ajaxFragments/目录下,注意Linux系统对文件名大小写敏感,如果实际文件名和配置的大小写不一致也会导致404。 - Action类路径配置错误
确认com.homedepot.mm.mf.mst.actions.ajax.GetRuleTypesAction类确实存在,并且已经成功编译到项目的class目录下,struts.xml中配置的class路径不能有拼写错误。
内容的提问来源于stack exchange,提问作者gcpdev-guy
相关产品推荐
相关产品推荐

