基本的servlet和jsp的設置生成HTML我熟悉....從JSP
RequestDispatcher dispatcher = request.getRequestDispatcher(resourceA.jsp);
dispatcher.forward(request, response);
的問題是,除了發送應答返回給瀏覽器(resourceA.jsp),我需要創建 來自resourceB.jsp的第二個HTML輸出,女巫反過來將通過電子郵件發送或用於創建pdf文檔。
這不是做每一次,只是在特定條件下,並通過調用
dispatcher.forward(request, response);
我第二次獲得和拋出:IllegalArgumentException。
我只是需要從JSP生成HTML返回HTML作爲字符串,沒有狀態碼或標題,只是HTML和A無關,與B中的方法(基本上取代了$ {面值}值)和 ,所以過濾器不起作用。
------重播先回答-----發表評論我要小---無格式
我不明白爲什麼會這樣difficaled ....
所有的鎂的有與在
${par}
${par['key']}
<c:if test="${patBoolean}" >
<c:forEach var="pvar" varStatus="s_pvar" items="${parList}">
HTML內容合併數據我甚至創造了一個包裝掩蓋的getOutputStream()和調用getWriter(),創造我自己的PrintWriter
public class ResponseWrapper extends HttpServletResponseWrapper{
private PrintWriter printWriter;
public ResponseWrapper(HttpServletResponse response){
super(response);
}
public ServletOutputStream getOutputStream() throws java.io.IOException{....}
public PrintWriter getWriter() throws java.io.IOException {....}
}
在得到的結果爲resourceB.jsp,但問題是dispatcher.forward(請求,響應) 集isCommitted原始HttpServletResponse的一些器具。
您是使用第二個JSP從客戶端還是從服務器創建PDF或發送電子郵件?如果你試圖從服務器上這樣做,我必須承認JSP不是正確的解決方案,模板引擎會更適合這項任務。 – 2010-07-26 21:46:13
我只是看看速度...看看代碼: #foreach($ criteria in $ criteria) ....它模仿jsp的,我需要學習另一種單獨的頁面的腳本方法,使用代碼... 它是如此簡單的jsp,屬性,html ...我已經使用它,它適用於電子郵件和PDF,但第二個dispatcher.forward回到瀏覽器,現在是唯一的問題。 ...必須離開,是的,我從服務器端 – nico 2010-07-26 23:14:42
我認爲你需要考慮發出兩個HTTP請求,而不是一個,特別是如果你已經設法讓電子郵件/ PDF部分工作。對於同一請求,服務器根本無法用兩種不同類型的內容進行響應。如果你可以詳細說明你的用例,它可能也會有所幫助,因爲要把服務器生成的電子郵件發送給客戶端這一事實是很困難的。 – 2010-07-26 23:21:46