Struts2 异常消息

Struts2 异常消息,struts2,Struts2,我想在引发异常时显示带有自定义消息的自定义页面。 我就是这样做的 行动类: catch(OrbytTvException e) { result=NONE; Error err=new Error(); err.setErrMsg("Exception Occured"); log.info(err.getErrMsg()); request.setAttribute("error", err); } Struts.xml: <result na

我想在引发异常时显示带有自定义消息的自定义页面。 我就是这样做的

行动类:

catch(OrbytTvException e) {
    result=NONE;
    Error err=new Error();
    err.setErrMsg("Exception Occured");
    log.info(err.getErrMsg());
    request.setAttribute("error", err);
} 
Struts.xml:

<result name="none">/WEB-INF/pages/error.jsp</result>
错误这是一个包含errMsg属性的bean

当这里出现异常时,我正在为该属性设置一个值

Error.jsp:

<s:bean name="com.sits.itv.util.Error" var="errorBean" />
  <s:property value="#errorBean.errMsg"/>
这里我显示errMsg,但它显示为null


请您帮助我如何在struts2中显示自定义消息。

我认为,要在UI上显示异常,s2提供了一种干净的方法,默认情况下,ExceptionMappingInterceptor会将以下值添加到值堆栈中:

异常对象本身 exceptionStack堆栈跟踪中的值 这就是您在JSP页面中需要做的全部工作

<s:property value="%{exception.message}"/>
  <s:property value="%{exceptionStack}"/> 
详情请参阅官方文件

此外,您不需要执行request.setAttributeerror,err;由于S2提供了一个干净的函数,您只需在action类中声明一个属性及其getter和setter,就可以在JSP中自由地将它们重新绑定,因为该属性将作为值堆栈的一部分提供


但我仍然相信,这不应该是向用户显示信息的方式,它的使用框架提供了一种更灵活、更易于使用的方式。谢谢您的重播。您能为我提供参考URL,以便在中开发异常处理吗strut2@rams:异常处理在S2和S2中没有什么不同在S2中,您不需要抛出任何特定的异常,实际上您可以随意抛出任何异常,我在回答中已经提供了两个参考,详细解释了如何处理和向最终用户显示信息