【问题标题】:Fill a table in JSP with list provided from spring controller使用 spring 控制器提供的列表填充 JSP 中的表
【发布时间】:2020-11-15 07:34:27
【问题描述】:

我试图用我从 Spring 控制器放入模型的 List 来填充 jsp 中的表格,但表格没有被填充。这是页面:

<%@ page import="cl.onvision.dte.be.utils.*" %>
<%
    String order  = request.getParameter("o");
    String search = request.getParameter("s");

    String strTitulo = "Gestor usuarios";
%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">

    <title>Administrador / Inicio</title>
</head>

<body>
    <!-- Header layer -->
    <div class="container">
        <div class="row" style="background-color: rgb(255,130,0); padding: 10px">
            <div class="col-sm-3"><img src="/img/index/slogan150.png" /></div>
            <div class="col-sm-4"></div>
            <div class="col-sm-5 text-right text-white">
                <!--a href="/login/salir">Salir</a-->
                <%@include file="/views/include/bannerSesion.jsp"%>
            </div>
        </div>
    </div>

    <!-- Menu layer -->
    <div class="container">
        <ul class="nav nav-tabs nav-justified">
            <li class="nav-item"><a class="nav-link" href="/admin/inicio">Inicio</a></li>
            <li class="nav-item"><a class="nav-link" href="/admin/usuarios">Gestion Usuarios</a></li>
            <li class="nav-item"><a class="nav-link" href="/admin/contrib">Gestion Contribuyentes</a></li>
            <li class="nav-item"><a class="nav-link" href="/admin/alertas">Alertas</a></li>
            <li class="nav-item"><a class="nav-link active" href="/admin/ciudades">Ciudades</a></li>
        </ul>
    </div>
    <br />

    <!-- Search & button upper-layer -->
    <div class="container">
        <div class="row">
            <div class="col-sm-6">
                <b>Búsqueda:</b>
                <input type="text" class="input-sm" style="height:25px" id="s" value="<%= (search==null)? "": search %>"
                    maxlength="20" size="20" autofocus />
                <input type="hidden" id="o" value="<%= (order==null)? "": order %>" />
            </div>
            <div class="col-sm-6 text-right">
                <button data-toggle="modal" data-target="#modaladd" class="btn btn-sm btn-success">
                    <i class="material-icons" style="font-size:22px">person_add</i>
                </button>
            </div>
        </div>
    </div>
    <div style="height:10px"></div>

    <!-- Data list -->
    <div class="container">
        <div class="table-responsive">
            <table class="table table-striped table-hover table-bordered table-condensed table-sm">
                <thead>
                    <tr>
                        <th style="text-align:center">#</th>
                        <th style="text-align:center">Nombre usuario</th>
                        <th style="text-align:center">Region</th>
                        <th style="text-align:center">Acciones</th>
                    </tr>
                </thead>
                <tbody>
                    <c:forEach var="ciudad" items="${ciudades}">
                        <tr>
                            <td style="text-align:center"><c:out value="${ciudad.id}"/></td>
                            <td style="text-align:center"><c:out value="${ciudad.nombre}"/></td>
                            <td style="text-align:center"><c:out value="${ciudad.region}"/></td>
                            <td class="pl-5">
                                <a href="/admin/usuario/eliminar/${ciudad.id}/">
                                    <button class="btn btn-sm btn-primary"><i class="material-icons"
                                            style="font-size:16px">remove_circle</i></button>
                                </a>
                                <a href="javascript:leerDatos(${ciudad.id});">
                                    <button class="btn btn-sm btn-warning"><i class="material-icons"
                                            style="font-size:16px">border_color</i></button>
                                </a>
                            </td>
                        </tr>
                    </c:forEach>
                </tbody>
            </table>
        </div>
    </div>


    <a href="#" id="axls" style="display:none;" donwload>a</a>

    <!-- Modal 'add user' form-->
    <div class="modal" id="modaladd">
        <div class="modal-dialog">
            <div class="modal-content">

                <!-- Modal Header -->
                <div class="modal-header bg-info text-white">
                    <h2 class="modal-title">Agregar nuevo usuario</h2>
                </div>

                <!-- Modal body -->
                <form method="post" action="/admin/usuario/agregar">
                    <div class="modal-body">
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="nom">Nombre de usuario:</label></div>
                            <div class="col-sm-8">
                                <input type="text" class="form-control input-sm" name="nomusu" id="nom" maxlength="40"
                                    required />
                            </div>
                        </div>
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="run">RUN:</label></div>
                            <div class="col-sm-8">
                                <input type="text" class="form-control input-sm" name="runusu" id="run" maxlength="40"
                                    required />
                            </div>
                        </div>
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="cla">Nueva clave:</label></div>
                            <div class="col-sm-8">
                                <input type="password" class="form-control input-sm" name="cla1usu" id="cla"
                                    maxlength="20" required />
                            </div>
                        </div>
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="cla2">Repita la clave:</label></div>
                            <div class="col-sm-8">
                                <input type="password" class="form-control input-sm" name="cla2usu" id="cla2"
                                    maxlength="20" required />
                            </div>
                        </div>
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="com">Comentarios:</label></div>
                            <div class="col-sm-8">
                                <textarea class="form-control input-sm" name="comentusu" id="com" rows="3"
                                    cols="80"></textarea>
                            </div>
                        </div>
                    </div>
                    <!-- Modal footer -->
                    <div class="modal-footer">
                        <input type="submit" class="btn btn-success" value="Agregar nuevo usuario" />
                        <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <!-- Modal 'update user' form-->
    <div class="modal" id="modalupdate">
        <div class="modal-dialog">
            <div class="modal-content">

                <!-- Modal Header -->
                <div class="modal-header bg-info text-white">
                    <h2 class="modal-title">Modificar usuario</h2>
                </div>

                <!-- Modal body -->
                <form method="post" action="/admin/usuario/modificar">
                    <div class="modal-body">
                        <input type="hidden" name="uid" id="uid" value="" />
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="unom">Nombre de usuario:</label></div>
                            <div class="col-sm-8">
                                <input type="text" class="form-control input-sm" name="unomusu" id="unom" maxlength="40"
                                    readonly />
                            </div>
                        </div>
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="urun">RUN:</label></div>
                            <div class="col-sm-8">
                                <input type="text" class="form-control input-sm" name="urunusu" id="urun" maxlength="40"
                                    readonly />
                            </div>
                        </div>
                        <div class="row" style="margin-bottom:10px">
                            <div class="col-sm-4"><label for="ucom">Comentarios:</label></div>
                            <div class="col-sm-8">
                                <textarea class="form-control input-sm" name="ucomentusu" id="ucom" rows="3"
                                    cols="80"></textarea>
                            </div>
                        </div>
                    </div>

                    <!-- Modal footer -->
                    <div class="modal-footer">
                        <input type="submit" class="btn btn-success" value="Modificar datos" />
                        <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
                    </div>
                </form>
            </div>
        </div>
    </div>

</body>

<script>
    function ordenarDatos(campo) {
        url = 'gestionUsuarios.jsp?o=' + campo + '&s=' + $('#s').val();
        document.location.href = url;
        return null;
    }

    /*function descargarXls()
    {
        url1 = '${pageContext.request.contextPath}/ExtraerXlsUsuarios.do';

        $.ajax( {url: url1,
            success: function(result)
            {
                //$('#axls').attr('href', "../"  + result);
                location.href = "../"  + result; //$('#axls').attr('href');
            } });
    }*/

    $('#s').keypress(function (event) {
        if (event.which == 13) {
            document.location.href = 'gestionUsuarios.jsp?o=' + $('#o').val() + '&s=' + $('#s').val();
            return null;
        }
    }
    );

    function leerDatos(id) {
        $.post("/admin/usuario/ver/" + id + "/", function (obj) {
            obj = JSON.parse(obj);
            $('#uid').val(obj.id);
            $('#unom').val(obj.nom);
            $('#urun').val(obj.run);
            $('#ucom').val(obj.com);

            $('#modalupdate').modal('show');
            obj = null;
        });
    }

    /*$().ready( function()
    {
        v = $('#s').val();
        $('#s').val('');
        $('#s').val(v);
    });*/


</script>

</html>

我将列表放入模型右侧,如您在 chrome 开发人员工具中所见:

我看不到这里的问题,我需要帮助来找出表格没有被填满的原因。

【问题讨论】:

  • 检查this 帖子可能会有所帮助。
  • 尝试使用指令
  • @PradeepMaurya 我做了,但问题没有解决

标签: spring-boot spring-mvc jsp


【解决方案1】:

尝试在代码顶部包含&lt;%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;。此外,请确保您的对象名称 ciudades 拼写与控制器中的一样。

【讨论】:

    【解决方案2】:

    我的问题是两件事:

    1. 我使用 tomcat 作为 webapp,它不带 JSTL embeddeb。所以我不得不在 pom.xml 中添加依赖。如果你想使用 EL,版本很重要。
      <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
       </dependency>
    
    1. 我必须在 JSP 顶部添加 taglib 才能访问 标记。感谢@Morteza Bandi 的提醒。

    【讨论】:

      猜你喜欢
      • 2017-03-29
      • 2016-03-25
      • 2018-01-16
      • 1970-01-01
      • 2019-05-06
      • 2014-09-16
      • 2021-12-24
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多