如何使用Java

时间:2018-11-30 06:57:18

标签: java html spring-boot

我想从CSV文件中读取数据,并使用Java在html模板中写入数据。现在我正在读取csv文件,但是在将数据写入html模板时,没有发生数据循环。 (即,如果csv文件中有10行,那么它应该在html表中动态创建10行,但没有发生)

我在Google上搜索了很多,但是找不到任何相关示例。如果您分享任何POC或示例,对我会有很大帮助。提前致谢。

Java代码

import java.io.File;
import java.io.FileReader;
import java.util.Arrays;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import com.opencsv.CSVReader;

@Controller
public class HelloController {

String totalScenarios ;
String passScenarios ;

@RequestMapping("/")
String home(ModelMap modal) throws Exception{
    //reading from csv file
    CSVReader reader = new CSVReader(new FileReader("employees.csv"));
       List<String[]> myEnteries = reader.readAll();
       reader.close();
       for(String[] entry:myEnteries)
       {
           System.out.println(Arrays.toString(entry));
           totalScenarios =  Arrays.toString(entry);
           passScenarios = entry.toString();
          // writing in html file
           modal.addAttribute("title", totalScenarios);
           modal.addAttribute("message", passScenarios);
       }      
       return "hello";
}
}

CSV数据

[1, java, java, 1]
[2, angular, angular, 1]
[3, java, java, 1]

HTML模板

<!DOCTYPE html>

<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
</head>
<body>
<div class="container">
    <div class="jumbotron">
        <h2>${title}</h2>
     <table>
        <thead>
          <tr>
            <th>title</th>                
          </tr>
          </thead>
          <tbody>
          <tr>
            <td>${title}</td>              
          </tr>
          <tr>
            <td>${title}</td>               
          </tr>
          </tbody>
        </table>

    </div>
</div>

1 个答案:

答案 0 :(得分:1)

您的modelMap仅包含csv文件的最后一行。它是一个映射,而不是列表,因此model.addAttribute()将用新值替换之前的值。不确定模板所需的内容,但是如果字符串列表有效,则需要执行以下操作...

List<String> totalScenarios = new ArrayList<>();
List<String> passScenarios = new ArrayList<>();
for(String[] entry:myEnteries)
{
   totalScenarios.add(Arrays.toString(entry));
   passScenarios.add(entry.toString());
}
// writing in html file
modal.addAttribute("title", totalScenarios);
modal.addAttribute("message", passScenarios);