将列表值保存到二维数组并检索

问题描述 投票:1回答:1

我试图将Java列表放入2D数组并从JSP检索它。但这并没有成功。我真的需要完成这项工作。如果可以的话,请支持我。

更新:

第一列表正在插入第一行(我希望它插入第一列)。同样,将其他三个列表插入到其他3行而不是三列。截图enter image description here

需求:

例如:-

Servlet代码。

Scanner scanner  = new Scanner(Result);
        List<String> cdLine = new ArrayList<String>();
        List<Integer> wtc = new ArrayList<Integer>();
        List<Integer> ncc = new ArrayList<Integer>();
        List<Integer> ccpps = new ArrayList<Integer>();
        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);

            @SuppressWarnings("rawtypes")
            List arr[][]={{cdLine},{wtc},{ncc},{ccpps}};  
        }  

        @SuppressWarnings("rawtypes")
        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);

JSP代码(使用JSTL)

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

更新2:

解析到JSP的2D数组就是这样。希望这也需要更改。
[[[public class Prime {, if,     public static void main(String[] args) {, ,         int low = 20, high = 50;, ,         while (low < high) {,             if(checkPrimeNumber(low)),                 System.out.print(low + " ");, ,             ++low;,         },     }, ,     public static boolean checkPrimeNumber(int num) {,         boolean flag = true;, ,         for(int i = 2; i <= num/2; ++i) {, ,   if(num % i == 0) {,                 flag = false;,                 break;,             },         }, ,         return flag;,     }, }]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]]]

我得到的输出:

enter image description here谢谢您的贡献。

我试图将Java列表放入2D数组并从JSP检索它。但这并没有成功。我真的需要完成此操作。如果可以的话,请支持我。如果您能够解决此问题,请把我的代码放在下面。

您的代码中有两个问题:
A。通过以下语句,您创建了一个3-D结构,它是一个数组

of

数组

of

列表(请注意,List是动态数组的实现。一维数组)。List arr[][]={{cdLine},{wtc},{ncc},{ccpps}}; 您需要一个数组of列表,如下所示:
List arr[]={cdLine,wtc,ncc,ccpps}; 

B。请勿将以上行放在while循环内。在while循环后仅执行一次。

除了上述要点,我建议您创建一个自定义类型,而不要对List数组使用原始类型。您的自定义类型应类似于:

class MyType { private List<String> cdLine = new ArrayList<String>(); private List<Integer> wtc = new ArrayList<Integer>(); private List<Integer> ncc = new ArrayList<Integer>(); private List<Integer> ccpps = new ArrayList<Integer>(); // ..constructors and getters and setters }

如有任何疑问/问题,请随时发表评论。
java jsp servlets foreach jstl
1个回答
0
投票
A。通过以下语句,您创建了一个3-D结构,它是一个数组

of

© www.soinside.com 2019 - 2024. All rights reserved.