在struts-config.xml中:

<action path="/PackageUpdateFilesSubmit"
    type="com.biscom.fds.action.PackageAction" scope="request"
    name="packageForm" validate="true"
    input="/packages/packageUpdateFiles.jsp" parameter="method"
    roles="SENDER">

    <forward name="success" path="/PackageView.do?method=view" />
    <forward name="warning" path=".fdsApp.message" />
    <forward name="failure" path=".fdsApp.message" />
</action>


在PackageForm.java中(其中扩展了ActionForm类)

@Override
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        // TODO Auto-generated method stub

        ActionErrors errors = super.validate(mapping, request);
        // Only need crossfield validations here
        if (filename3 == null) {
            errors.add(ActionMessages.GLOBAL_MESSAGE, new
                  ActionMessage("page.externalAuthSource.list.error.empty"));//add("error",
                  new ActionError("error.custform"));
        }
        return errors;
    }


我期望什么:

发生错误时,将重定向到“ /packages/pUF.jsp”页面。

怎么了:

发生HTTP错误500。

注意:在我的控制器中,属性“ inputForward”的设置值为true。

最佳答案

没错,表单验证控件永远不会进入Action类。因此,此问题与Action类无关。
我的建议是只检查您的资源束文件/属性文件,以确保将相关的错误消息值放在其中,并且将ActionForm类扩展为ValidatorActionForm / DynaValidatorActionForm类,也可以不扩展。

07-26 05:13