Java JSP中的字符串数组(字符串[][])输出

Java JSP中的字符串数组(字符串[][])输出,java,arrays,string,jsp,printing,Java,Arrays,String,Jsp,Printing,我对JSP一无所知。我想要的是基本上使用JSP打印字符串[],就像我以前在eclipse中在控制台上所做的那样: public void printField(String[][] field){ for (int i = 0; i < field.length-1; i++){ for (int j = 0; j < field[i].length-1; j++){ String x = field[j][i]

我对JSP一无所知。我想要的是基本上使用JSP打印字符串[],就像我以前在eclipse中在控制台上所做的那样:

public void printField(String[][] field){
        for (int i = 0; i < field.length-1; i++){
            for (int j = 0; j < field[i].length-1; j++){
                String x = field[j][i];
                System.out.print("|");

                if (x.equals(" ")){
                    System.out.print("   ");
                } else if (x.equals("S")) {
                    System.out.print(" S ");
                } else if (x.equals("x")) {
                    System.out.print(" x ");
                } else if (x.equals("#")){
                    System.out.print(" # ");
                } else if (x.equals("*")){
                    System.out.print(" * ");
                }
                else if (x.equals("10")){
                    System.out.print(" "+x );
                }
                else {
                    System.out.print(" " +x +" ");
                }
            }
            System.out.println("|");
        }
        System.out.println();
}

正如一般信息:我已经对战舰进行了编码。我现在想做的是创建一个基于web的前端,这就是为什么我要问这个问题。稍后我将用图形项目替换此字段输出。但这只是为了学习的目的。

首先。你意识到所有这些条件都是完全不必要的吗

if (x.equals(" ")){
    System.out.print("   ");
} else if (x.equals("S")) {
    System.out.print(" S ");
} else if (x.equals("x")) {
    System.out.print(" x ");
} // others....
您先获取值,然后在。。。那么您的代码与以下代码相同:

if (x.equals("10")){
    System.out.print(" "+x );
} else {
    System.out.print(" " + x + " ");
}
您还可以使用
String.format
。。。但无论如何


要在JSP中显示此结构,请执行以下操作:

在请求中设置属性

request.setAttribute("field", field);
然后在JSP中:

<table class="your_class">
    <thead>
        not necessary
    </thead>

没必要
然后使用以下命令在元素上迭代:

    <tbody>
        <!-- each item in field will be an 1d array -->
        <c:forEach items="${field}" var="row">
            <td> |
                <tr class="your_class">
                <!-- each item in row will be an element -->
                <c:forEach items="${row}" var="item">
                    ${item} |
                </c:forEach>
                </tr>
            </td>
        </c:forEach>
    </tbody>
</table>

|
${item}|

首先。你意识到所有这些条件都是完全不必要的吗

if (x.equals(" ")){
    System.out.print("   ");
} else if (x.equals("S")) {
    System.out.print(" S ");
} else if (x.equals("x")) {
    System.out.print(" x ");
} // others....
您先获取值,然后在。。。那么您的代码与以下代码相同:

if (x.equals("10")){
    System.out.print(" "+x );
} else {
    System.out.print(" " + x + " ");
}
您还可以使用
String.format
。。。但无论如何


要在JSP中显示此结构,请执行以下操作:

在请求中设置属性

request.setAttribute("field", field);
然后在JSP中:

<table class="your_class">
    <thead>
        not necessary
    </thead>

没必要
然后使用以下命令在元素上迭代:

    <tbody>
        <!-- each item in field will be an 1d array -->
        <c:forEach items="${field}" var="row">
            <td> |
                <tr class="your_class">
                <!-- each item in row will be an element -->
                <c:forEach items="${row}" var="item">
                    ${item} |
                </c:forEach>
                </tr>
            </td>
        </c:forEach>
    </tbody>
</table>

|
${item}|

您可以使用html标记,如
p
br
来生成html内容,而不是souty您必须了解stackoverflow的工作原理。。。a) 你无法回答自己的问题来进行更新,你必须编辑原始问题,b)你现在问的是一个完全不同的问题,原始问题是关于jsp并将数据传递给请求,现在你在构建html和c)如评论中所述,我给你的是一个指南,正如你在结果中所看到的,未经测试的动态编写方法现在您必须努力获得所需的设计或提出新问题。您可以使用html标记,如
p
br
来制作html内容,而不是souty您必须了解stackoverflow的工作原理。。。a) 你无法回答自己的问题来进行更新,你必须编辑原始问题,b)你现在问的是一个完全不同的问题,原始问题是关于jsp并将数据传递给请求,现在你在构建html和c)如评论中所述,我给你的是一个指南,正如你在结果中所看到的,未经测试的动态编写方法现在您必须努力获得所需的设计或提出一个新问题。我不一定确定JSP代码是否有效。每次输出
${item}
时,都会创建一个新行。我以前也做过类似的事情,这有点棘手。行的创建需要在两个循环之间进行。@RaymondHolguin同意,刚刚标记了op的路径,但这是一个未经测试的代码,写在fly上。不用担心,我明白。只是因为OP是JSP的新手,他可能会认为这是一个有效的例子,因为你的答案中没有提到这只是一个粗略的起点。。。仍然在运行中,我不一定确定JSP代码是否能正常工作。每次输出
${item}
时,都会创建一个新行。我以前也做过类似的事情,这有点棘手。行的创建需要在两个循环之间进行。@RaymondHolguin同意,刚刚标记了op的路径,但这是一个未经测试的代码,写在fly上。不用担心,我明白。只是因为OP是JSP的新手,他可能会认为这是一个有效的例子,因为你的答案中没有提到这只是一个粗略的起点。。。仍然在飞行中xD