Как читать данные из CSV и записывать их в шаблон HTML, используя Java - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу прочитать данные из файла CSV и записать данные в шаблон HTML, используя Java.Сейчас я читаю CSV-файл, но при записи данных в HTML-шаблон зацикливание данных не происходит.(т. е. если в CSV-файле 10 строк, то он должен динамически создать 10 строк в HTML-таблице, но этого не происходит)

Я много гуглил, но не смог найти подходящих примеров.Мне бы очень помогло, если бы вы поделились каким-либо 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 голосов
/ 30 ноября 2018

В вашей модели будет только последняя строка из 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);     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...