0

我需要实现对控制器中的方法的调用。但我想从 scriptlet 调用这个方法,但我不知道该怎么做。我正在尝试将从服务器获取的数据导出到 CSV。

这是我到目前为止的脚本:

<%  
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 绑定。

我是春天的新手,我还在学习这个。可能解决方案非常简单,但我坚持这一点。

4

1 回答 1

2

你不能,因为你不应该。所有这些代码都应该放在控制器中。

(从技术上讲,您可以拥有一个 JSTL 函数并调用它,或者简单地调用一个静态方法,甚至使用 获取控制器WebApplicationContextUtils.getRequiredWebApplicationContext(..).getBean(..),但所有这些都会很丑陋)

于 2012-04-10T20:28:06.907 回答