2012-04-10 61 views
0

我需要實現對我在控制器中使用的方法的調用。但我想從scriptlet調用這個方法,我不知道該怎麼做。我試圖將我從服務器獲得的數據導出到CSV。是否有可能在Spring中通過Scriptlet調用控制器方法

這是小腳本,我到目前爲止有:

<% 
String csvDataIn = request.getParameter("exportCSVParam"); 
String csvFileName = request.getParameter("exportCSVFileName"); 
if (csvFileName == null || csvFileName == "") csvFileName = "export.csv"; 

String strHeader = "attachment; filename=" + csvFileName; 
String contentType = "application/octet-stream"; 
response.setContentType(contentType); 
response.addHeader("content-disposition",strHeader); 

ServletOutputStream ostr = response.getOutputStream();  
String data=csvDataIn;//DATA GOES HERE; 
ostr.write(data.getBytes("ISO-8859-1")); 
ostr.flush(); 
ostr.close(); 
%> 

假設我想調用一個方法getDataAsCsv(),我在我的控制器返回與CSV數據的字符串,我想在打印該文件。應該刪除第1行和第2行(csvDataIn,csvFileName),因爲我不會將參數發送給此jsp。你是怎樣做的?。你如何將控制器bean與這個scriptlet綁定。

我是新來的春天,我還在學習這個。可能解決方案非常簡單,但我堅持這一點。

回答

2

你不能,因爲你不應該。所有這些代碼都應該放在控制器中。

(從技術上講,你可以有一個JSTL功能,並調用它,或者簡單地調用靜態方法,甚至與WebApplicationContextUtils.getRequiredWebApplicationContext(..).getBean(..)得到控制,但所有這些都將是醜陋的)

+0

我明白你的意思,但我可以使用例如:。但是我嘗試了這種方式,並且我能夠聯繫PRepositoty,但是這個bean並沒有與Spring正確連接。那麼,我想我需要在春季連接jsp?或者爲這個JSP頁面創建一個控制器,所以每次調用這個頁面時都由這個控制器控制呢?你在春天怎麼做?我覺得我有點失落:S – Juano7894 2012-04-12 18:17:59

+0

是的,做一個控制器。您不應該在JSP中編寫任何Java代碼..您可以查看spring示例應用程序以瞭解它是如何正確完成的 – Bozho 2012-04-12 23:01:34

+0

謝謝...我已經完成了! :d – Juano7894 2012-04-13 14:49:05

相關問題