0

例外が発生したときに、カスタム メッセージを含むカスタム ページを表示したいと考えています。このために、私はこのようにしています。

アクション クラス:

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 です。

ここで例外が発生した場合、そのプロパティに 1 つの値を設定しています。

エラー.jsp:

<s:bean name="com.sits.itv.util.Error" var="errorBean" />
  <s:property value="#errorBean.errMsg"/>

ここでは errMsg を表示していますが、null が表示されます。

struts2でカスタムメッセージを表示する方法を教えてください。

4

1 に答える 1

0

UIで例外を表示すると信じています.s2はそれを行うためのクリーンな方法を提供します.デフォルトではExceptionMappingInterceptor、値スタックに次の値が追加されます:

  1. exception 例外オブジェクト自体
  2. exceptionStack スタック トレースの値

JSPページで行う必要があるのはこれだけです

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

詳細については、公式ドキュメントを参照してください

さらに request.setAttribute("error", err);、S2 がクリーンを提供するので、その必要はありません。アクション クラスで getter と setter を使用してプロパティを宣言する必要があり、そのプロパティは Value-stack の一部として提供されるため、JSP でそれらを自由に再ファーできます。 .

しかし、それでも私はそれがユーザーに情報を表示する方法であってはならないと信じており、フレームワークを使用する方が常により柔軟で使いやすい方法を提供します

于 2012-04-19T09:42:43.893 に答える