簡體   English   中英

在自定義JSP模板中使用Struts 2 taglib實施郵件模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM