2010-10-13 97 views
0

我的工作郵件API模塊在那裏我必須開發相對於在Appliication各種功能發送郵件的通用功能上。提取JSP頁面內容

有一個提議的功能,其中該模塊將露出,其與一些所需的參數沿將採取JSP模板的娜內的方法。 據預計,這將提取JSP的內容,這將是一個很好格式化的郵件模板和發送郵件。

是否有JAVA任何方式,我可以提取該JSP頁面內容(HTML),這樣我可以在該郵件使用HTML內容。

在此先感謝

回答

3

你有兩條路可以走,與第一個是短了一點:

  • 使用new URL("http://site.com/url/to/page.jsp").openConnection(),得到InputStream並讀取其中的內容 - 這將是彷彿你的服務器發送一個請求給自己,並得到結果

  • 使用FilterHttpServletResponseWrapper,並返回一個自定義的Writer/OutputStream。每次將某些內容寫入寫入程序/流時,將其委託給原始對象,並將其寫入某處,以便稍後閱讀。這種解釋是不夠的,因爲這不太可能是你需要的,但如果你願意走這條路,告訴我。

然而,這不是通常的做法。您最好使用一些模板技術,例如FreemakerVelocity作爲您的電子郵件模板。

+0

第一種方法似乎對我來說合理,但第二種方法可能是我無法理解它,因爲郵件模板將在應用程序中使用,並且它們不會變化很多,所以我無法看到這種關係與過濾器或包裝 – 2010-10-13 17:04:29

1

這聽起來像你正在嘗試使用JSP作爲您的電子郵件模板引擎,這是一件好事它不打算這樣做。還有其他的技術更適合你想要的,比如Velocity和Freemarker。

但是,如果您在使用JSP時遇到問題,您有兩種選擇: 1)您可以使用Bozho描述的方法,實質上連接到您自己的站點並讓它爲您生成內容 2)您可以編寫JSP,在編譯時對其進行編譯,並將生成的servlet文件包含在您的電子郵件生成器中,並模擬Servlet API的輸入,生成的JSP servlet將期望從輸入的JSP中提取內容。

+0

這只是一個提案,尚未finalised.But,因爲我們主要使用JSP的所有演示文稿,所以可能是他們有一些JSP.bu從我身邊prefrence我想去最好的一個,如果他們允許我100%自由:) – 2010-10-13 17:10:23