[英]Implementing mail templates using Struts 2 taglib in custom JSP template
我正在構建一個使用Struts2作為主要框架的應用程序,但其中一項要求是該應用程序發送自動電子郵件。
由於Struts2在實現郵件模板方面沒有開箱即用的功能,因此我決定只使用普通的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,並返回輸出的字符串表示形式,其中包含替換的變量等。
人們會認為 ,通常包含Struts2 <%@ taglib prefix="s" uri="/struts-tags" %>
(例如<%@ taglib prefix="s" uri="/struts-tags" %>
)將允許使用<s:url />
類的標簽; 但是,似乎並非如此。 相反,對taglib的調用結果為空白。 不顯示錯誤,也不會引發異常。
我的猜測是在Struts2正確響應調用之前,需要向請求中注入其他內容,但是我不確定這會是什么。
有人對如何使它起作用有想法嗎? 像JSTL-core這樣的其他標記庫也可以正常工作。
如果ActionContext
可用,Struts標記將起作用。 通常,它是由Dispatcher
在准備操作中創建的。 因此,應該將struts2過濾器映射為接受DispatcherType.FORWARD
請求,以便在您的轉發中調用該請求。 您還可以通過JSP中的ActionContext.getContext()
獲取操作上下文以進行調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.