1

Struts 2 を主要なフレームワークとして利用するアプリを構築していますが、要件の 1 つは、アプリが自動メールを送信することです。

Struts 2 には、メール テンプレートの実装に関してすぐに使える便利な機能があまり含まれていないため、次のように通常の JSP を使用することにしました。

public static String parseJSPTemplate(String jspPath, HttpServletRequest req) throws ServletException, IOException {
    RequestDispatcher jsp = req.getRequestDispatcher(jspPath);
    EmailTemplateHandler tpl = new EmailTemplateHandler();
    jsp.forward(req, tpl);
    return tpl.toString();
}

したがって、これは通常の方法で JSP を処理し、変数を置き換えた出力の文字列表現などを返します。

Struts 2 の taglib を通常どおり (たとえば) 含めると、 のようなタグを使用できるようになると考える人もいるでしょう。しかし、そうではないようです。代わりに、への呼び出しの結果は空白になります。エラーは表示されず、例外もスローされません。<%@ taglib prefix="s" uri="/struts-tags" %><s:url />taglib

私の推測では、Struts 2 が呼び出しに適切に応答する前に、何か他のものを要求に挿入する必要があると思いますが、これが何であるかはわかりません。

誰でもこれを機能させる方法について考えがありますか? taglibJSTL-core のような他の s は正常に動作します。

4

1 に答える 1

0

が利用可能な場合、Struts タグは機能していActionContextます。通常Dispatcher、準備操作で作成されます。そのため、struts2 フィルターは DispatcherType.FORWARD、転送で呼び出されるリクエストを受け入れるようにマップする必要があります。ActionContext.getContext()デバッグ用に JSP でアクション コンテキストを取得することもできます。

于 2014-05-12T18:52:33.307 に答える