2012-04-10 8 views
0

aufrufen Ich muss einen Aufruf an eine Methode implementieren, die ich in meinem Controller haben. Aber ich möchte diese Methode von einem Scriptlet aus aufrufen und ich weiß nicht, wie ich das machen soll. Ich versuche, Daten, die ich vom Server bekomme, in CSV zu exportieren.Ist es möglich, Controller-Methode von einem Scriptlet im Frühjahr

Dies ist scriptlet, dass ich so weit:

<% 
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(); 
%> 

wird angenommen, dass ich eine Methode getDataAsCsv(), die ich habe in meinem Controller nennen wollen, die einen String mit der CSV-Daten zurückgibt, die ich in drucken möchten diese Datei. Die Zeilen 1 und 2 (csvDataIn, csvFileName) sollten gelöscht werden, da ich keine Parameter an dieses jsp senden werde. Wie machst du das?. Wie binden Sie die Controller-Bean mit diesem Scriptlet?

Ich bin neu im Frühling und ich lerne immer noch darüber. Wahrscheinlich ist die Lösung sehr einfach, aber ich bleibe dabei.

Antwort

2

Sie können nicht, weil Sie nicht sollten. All dieser Code sollte in den Controller gehen.

(technisch, können Sie eine JSTL Funktion haben und es nennen, oder einfach eine statische Methode aufrufen, oder auch die Steuerung mit WebApplicationContextUtils.getRequiredWebApplicationContext(..).getBean(..) bekommen, aber alle diese werden hässlich)

+0

ich Ihren Standpunkt verstehen, aber: Ich kann zum Beispiel verwenden: . Aber ich habe es auf diese Weise versucht, und ich war in der Lage, den PRepository zu kontaktieren, aber die Bean war nicht korrekt mit Spring verdrahtet. Also, ich denke, ich muss die JSP im Frühjahr verdrahten ?? oder erstellen Sie einen Controller nur für diese JSP-Seite, so dass jedes Mal, wenn diese Seite aufgerufen wird, von diesem controlleR gesteuert wird? Wie machst du das im Frühling? Ich denke, ich bin ein bisschen verloren: S – Juano7894

+0

ja, machen Sie einen Controller. Sie sollten keinen Java-Code in JSPs schreiben. Sie können die Spring-Beispielanwendungen überprüfen, um zu sehen, wie es richtig gemacht wird – Bozho

+0

Danke ... Ich mache es schon! : D – Juano7894