Как работает foreach для Списка списков в JSP - PullRequest
0 голосов
/ 16 марта 2020

["A", "B", "C", "D", "E", "F"] - ArrayList 01

[1,2,3,4 , 5,6] - ArrayList 02

[10,20,30,40,50,60] - ArrayList 03

[100,200,300,400,500,600] - ArrayList 04

Main_List - [[ "А", "Б", "C", "Д", "Е", "F"], [1,2,3,4,5,6], [10,20,30, 40,50,60], [100,200,300,400,500,600]];

  • Main_List - это комбинация четырех списков массивов

Как я могу получить Main_List в в таблицу с четырьмя столбцами?

<c:forEach items="${List_parameter}" var="post" varStatus="theCount">
    <tbody>
        <c:forEach items="${post}" var="value" varStatus="cell">
            <tr>
                <td scope="row">${theCount.count}</td>
                <td>${value.get(0)}</td>
                <td>${value.get(1)}</td>
                <td>${value.get(2)}</td>
                <td>${value.get(3)}</td>
                <td>-</td>
            </tr>
        </c:forEach>
    </tbody>
</c:forEach>

Сервлет, передающий список в JSP

Scanner scanner  = new Scanner(Result);
        ControlData controlData = new ControlData();
        while(scanner.hasNextLine())  
        {  
            token1 = scanner.nextLine();
            Wtcs = controlData.CtrlWeight(token1);
            NC = controlData.NofConditions(token1);
            Ccspps = controlData.previousComplex(token1);

            cdLine.add(token1);
            wtc.add(Ccspps);
            ncc.add(NC);
            ccpps.add(Wtcs);

        }  

        List arr[]={cdLine,wtc,ncc,ccpps};   
        scanner.close();     //close the scanner  
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/views/Control_structures.jsp");
        request.setAttribute("Code_string", arr);
        dispatcher.forward(request, response);
    }

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

Я получил ответ на свой вопрос.

В сервлете

        Scanner scanner  = new Scanner(Result);
        ControlData controlData = new ControlData();
        List<List<Comparable>> p =new ArrayList<List<Comparable>>();
        while(scanner.hasNextLine())  
        {  
            token1 = scanner.nextLine();
            Wtcs = controlData.CtrlWeight(token1);
            NC = controlData.NofConditions(token1);
            Ccspps = controlData.previousComplex(token1);
            List<Comparable> c =new ArrayList<Comparable>();
            c.add(token1);
            c.add(Wtcs);
            c.add(NC);
            c.add(Ccspps);
            p.add(c);
        }  
        scanner.close();     //close the scanner  
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/views/jsp_page.jsp");
        request.setAttribute("Code_string", p);
        dispatcher.forward(request, response);

Теперь у меня есть простой список для передачи JSP.

<c:forEach items="${Code_string}" var="post" varStatus="theCount1">
        <tbody>

            <tr>
                <td>${post[0]}</td>
                <td>${post[1]}</td>
                <td>${post[2]}</td>
                <td>${post[3]}</td>
            </tr>
        </tbody>
</c:forEach>
0 голосов
/ 16 марта 2020

1) Использовать <% @ page isELIgnored = "false"%> оценивать EL

2) Создать список и добавить.

3) Установить pageContext.setAttribute ("list", finalList );

<!DOCTYPE html>
<%@ page isELIgnored="false"%>
<%@ page language="java" contentType="text/html"%>
<%@ page import="java.util.*"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>List</title>
</head>
<body>
    <h1>List</h1>
    <%
        List<String> list1 = Arrays.asList("A", "B", "C", "D", "E", "F", "G");
        List<Integer> list2 = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
        List<List> finalList = new ArrayList<>();
        finalList.add(list1);
        finalList.add(list2);
        pageContext.setAttribute("list", finalList);
    %>
    <c:forEach items="${list}" var="post" varStatus="theCount">
        <p>List ${theCount.count}</p>
        <c:forEach items="${post}" var="value" varStatus="cell">
            ${value} &nbsp;
        </c:forEach>
    </c:forEach>
</body>
</html>

// Вывод //

Список списка 1

AB C DEFG
Список 2

1 2 3 4 5 6 7

...