You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Struts表单提交报Unable to find 'success' forward错误求助

问题根因

直接触发Unable to find 'success' forward警告的核心原因是struts-config.xml配置标签嵌套错误,另外代码里还有两处会引发后续运行异常的隐患:

  • 转发配置位置错误:当前<forward name="success" path="/success.jsp" redirect="true" />写在了<action path="/Hello">标签闭合之后,属于<action-mappings>的直接子节点。Struts的配置规则里,只有写在<action>标签内部的<forward>才会被识别为当前Action的局部转发;跨Action共用的全局转发必须包裹在<global-forwards>标签内才会生效。当前写法下Struts根本没有注册名为success的转发映射,调用findForward("success")自然返回空。
  • 表单校验空指针隐患:FormBackup.java的validate方法直接调用name.equals(""),如果请求里name参数为null,会直接抛出空指针异常,导致校验逻辑崩溃。
  • 重定向导致请求值丢失:当前success转发开了redirect="true",重定向是客户端发起的二次请求,第一次请求里存在request域的res属性会被丢弃,就算转发配置修好了,跳转到success.jsp也只会显示null。
修复步骤

1. 修正struts-config.xml的配置结构

把success的forward配置挪到/Hello对应的action标签内部,同时关闭重定向保证request域的值能正常传递,修正后的action-mappings片段如下:

<action-mappings>
    <action path="/Hello" name="HF" input="/index.jsp" type="beans.FormController">
        <!-- forward必须作为对应action的子节点存在 -->
        <forward name="success" path="/success.jsp" redirect="false" />
    </action>
</action-mappings>

如果需要配置全局通用的转发,才需要在action-mappings同级添加<global-forwards>节点包裹forward配置,当前单Action场景不需要。

2. 修复表单校验的空指针问题

修改FormBackup.java里validate方法的判断逻辑,先判空再校验空字符串:

@Override
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {
    ActionErrors ae = new ActionErrors();
    // 增加null判断,避免空指针
    if(name == null || name.trim().isEmpty()){
        ae.add("name",new ActionMessage("msg"));
    }
    return ae; 
}

3. (可选)优化Action层的取值逻辑

Struts会自动把表单参数注入到绑定的ActionForm对象里,不需要手动从request.getParameter取值,直接从传入的form对象拿值更稳妥:

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    FormBackup formBean = (FormBackup) form;
    request.setAttribute("res", "Hello..." + formBean.getName());
    return mapping.findForward("success");  
}

修改完成后重启应用服务器,再提交表单就能正常跳转,控制台不会再出现找不到转发的警告。

内容的提问来源于stack exchange,提问作者suriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:18:46