2

在 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。

4

1 回答 1

0

你是对的,直到表单验证控制永远不会进入 Action 类。所以这个问题与 Action 类没有任何关系。我可以建议只是检查您的资源包文件/属性文件,以确保您将相关的错误消息值放在那里,并且您正在将 ActionForm 类扩展到 ValidatorActionForm/DynaValidatorActionForm 类。

于 2013-02-28T12:05:48.227 回答