向Struts2迁移错误处理

时间:2017-02-08 13:33:36

标签: error-handling struts2 resourcebundle struts1

要显示错误,我们需要包含错误消息的消息密钥。 我创建了一个名为ApplicationError.properties的新资源包,其中包含以下属性:

app.error=Error: {0}

我尝试将此类从struts1更改为struts2,但我遇到了错误处理问题。我没有在struts2中找到等效的

   public class MyAction extends Action{

    public ActionForward execute(ActionMapping actionMapping,
                    ActionForm actionForm,
                    HttpServletRequest request,
                    HttpServletResponse response)
                 throws Exception{

    ActionErrors actionErrors = new ActionErrors();
    ActionMessage message = new ActionMessage("app.error","Not Found Exception");


    try{
    //some code

    }catch(NotFoundException e){
        actionErrors.add(ActionErrors.GLOBAL_MESSAGE, message);
        saveErrors(request, actionErrors);
        return getErrorActionForward(actionMapping);

    }
    return getActionForward(actionMapping);
}

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

检查您的动作类要扩展的ActionSupport类。然后使用其方法添加错误。

此类还实现了TextProvider,因此您可以从资源中获取本地化消息。

/** Add an Action-level error message to this Action. */
void  addActionError(String anErrorMessage)

/** Add an Action-level message to this Action. */
void  addActionMessage(String aMessage)