异常消息

时间:2012-04-19 09:34:22

标签: 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 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中显示自定义消息。

1 个答案:

答案 0 :(得分:0)

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

  1. exception异常对象本身
  2. exceptionStack堆栈跟踪中的值
  3. 这就是你需要在JSP页面中做的所有事情

    <s:property value="%{exception.message}"/>
      <s:property value="%{exceptionStack}"/> 
    

    有关详细信息,请参阅官方文档

    另外你不需要做request.setAttribute("error", err);,因为S2提供了一个干净的,只需要在你的动作类中使用它的getter和setter声明一个属性,你就可以在JSP中自由地将它们转换为该属性作为Value-stack的一部分提供。

    但我仍然认为这不应该是向用户显示信息的方式,而且总是更好地使用框架提供更灵活和易于使用的方式

相关问题