Forms 将表单标记下载为csv文件格式

Forms 将表单标记下载为csv文件格式,forms,grails,csv,download,gsp,Forms,Grails,Csv,Download,Gsp,我需要一些关于如何将表单下载到CSV文件的帮助或指南。我想做的是: <form> <select name="mydropdown"> <option value="Chicken">Fresh Milk</option> <option value="Apple">Old Cheese</option> <option value="Bread">Hot Bread</option> &

我需要一些关于如何将表单下载到CSV文件的帮助或指南。我想做的是:

      <form>
<select name="mydropdown">
<option value="Chicken">Fresh Milk</option>
<option value="Apple">Old Cheese</option>
<option value="Bread">Hot Bread</option>
</select>
       </form>
     <input type=button>

草原鲜奶
老奶酪
热面包
GSP应该是这样的,当下载csv文件时,我不确定控制器需要什么,结果应该是所选选项中的一个值,并在文件中显示为文本。顺便说一下,我正在使用grails。有人能帮我吗?我一直在研究,但没有任何结果


非常感谢大家:)

您可以使用OpenCSV来完成这项工作

定义依赖关系

dependencies {
  ...
  compile('net.sf.opencsv:opencsv:2.0')
  ...
}
创建动作

def export() {
  ByteArrayOutputStream output = new ByteArrayOutputStream()
  char separator = ';'
  CSVWriter writer = new CSVWriter(new OutputStreamWriter(output), separator);
  def line = [params.mydropdown]
  writer.writeNext(line as String[]) 
  //use writeNext as many times as needed
  writer.close()
  byte[] bytes = output.toByteArray()
  //needed to force download
  response.setContentType("text/csv")
  response.setContentLength(bytes.length)
  response.setHeader("Content-Disposition", "attachment; filename=mycsv.csv")
  response.outputStream << bytes
}
def导出(){
ByteArrayOutputStream输出=新建ByteArrayOutputStream()
字符分隔符=';'
CSVWriter writer=新的CSVWriter(新的OutputStreamWriter(输出),分隔符);
def行=[params.mydropdown]
writer.writeNext(行作为字符串[])
//根据需要多次使用WriteText
writer.close()
字节[]字节=输出。toByteArray()
//需要强制下载吗
response.setContentType(“text/csv”)
response.setContentLength(bytes.length)
response.setHeader(“内容处置”、“附件;文件名=mycsv.csv”)

response.outputStream不知道您在问什么。所谓“将表单下载到CSV文件”是指将表单字段值作为一行附加到现有CSV中吗?稍后您会说“正在下载CSV”这给了我另一个想法。表单中的文本永远不会提交,只有字段的内容,所以不会传输。对不起,我刚刚编辑过。现在应该更清楚了。当用户从下拉菜单中选择一个选项时,它会将其中一个选项下载到csv文件中。你知道如何做吗?感谢您的回复。我收到一个错误代码,它表明:找不到匹配的构造函数:liquibase.util.csv.opencsv.CSVWriter(java.io.OutputStreamWriter,java.lang.String)。Stacktrace如下:消息:找不到匹配的构造函数:liquibase.util.csv.opencsv.CSVWriter(java.io.OutputStreamWriter,java.lang.String)你知道这个错误是关于什么的吗?您好!非常感谢,它已经被修复了。行中:CSVWriter writer=new CSVWriter(new OutputStreamWriter(output),“;”);我删除了“;”,并成为CSVWriter writer=new CSVWriter(new OutputStreamWriter(output));它成功了。我不知道为什么。你知道吗?因为它必须是一个字符,groovy将其定义为一个字符串。我将更新这个示例。
<g:form action="export">
...
</g:form>