我需要实现对我控制器中的方法的调用。但我想从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绑定。
我是春天新手,我还在学习这个。可能解决方案很简单,但我坚持这个。
答案 0 :(得分:2)
你不能,因为你不应该。所有这些代码都应该放在控制器中。
(从技术上讲,你可以拥有一个JSTL函数并调用它,或者只是调用一个静态方法,甚至可以使用WebApplicationContextUtils.getRequiredWebApplicationContext(..).getBean(..)
来获取控制器,但所有这些都会很丑陋)