首页 > 解决方案 > 如何在另一个jsp中正确包含一个jsp

问题描述

我正在制作一个表单以将事件添加到列表中,但我需要能够以该表单查看该列表中的先前事件。我有一个显示事件列表的 jsp,但是当您直接从浏览器访问列表时,它通常会由控制器添加一个属性。

那么如何添加列表 jsp 填充该属性,使其显示列表而不仅仅是标题?

我已经包含了使用的jsp

<jsp:include page="comp_list.jsp"></jsp:include>

它显示了标题,但由于没有属性,它没有显示列表。我尝试向包含添加属性,例如:

<jsp:include page="comp_list.jsp">
  <jsp:attribute name="compensaciones">
    ${compensaciones}
  </jsp:attribute>
</jsp:include>

但是当我这样做时,它会显示一个错误,告诉我这无法完成。

还尝试了参数,但这对我来说不是答案,因为参数是在控制器中而不是在 jsp 本身中处理的。

我只是得到列表的标题,这很好,但我想查看列表。

编辑:这就是我建立列表的方式,以防你想知道

<tbody>
  <c:forEach var="comp" items="${compensaciones}">
    <td>${comp.getSomething()}</td>
    ...
  </c:forEach>
</tbody>

标签: javajsp

解决方案


有时,由于我以前在 HTML 和 PHP 方面有过经验,我们只是简单地包含导航和标题等内容,以便于管理。

我不确定您包含 JSP 的目的是什么,但这里有一个示例说明我是如何做到的,因为如果布尔值为真,我会包含 JSP。

访问的站点:

<div class="row">
            <div class="col-lg-2">
            </div>
            <div class="col-lg-8">

                <%
                    if (loggedin) {
                %>

                <%@ include file="includes/profile.jsp" %>

                <%    } else {
                    out.println("<div><h2>You aren't logged in!</h2></div>");
                }
                %>

            </div>
            <div class="col-lg-2">
            </div>
        </div>

我所包含的 JSP 文件的顶部和底部不包含诸如头、标题、html、正文等内容。

<%

    User currUser = null;

    currUser = (User) session.getAttribute("user");

%>


<div>
    <h2>Du er logget ind, velkommen <% out.println(currUser.getUsername().toUpperCase()); %></h2> <br>

    <h5>Din Saldo: <b><%  if (currUser.getBalance() < 0) { out.println("<font color='red'>" + currUser.getBalance() + "</font>");} else { out.println("<font color='green'>" + currUser.getBalance() + "</font>");}  %></b></h5>
    <br>
    <form class="form" method="post" action="#">
        <h4>Oplysninger: </h4>
        <h6>
            For at  &aelig;ndre oplysninger skal du indtaste dit kodeord!
        </h6>
        Nuv&aelig;rende Kode: <input type="password" class="form-control" placeholder="kodeord" name="password" required>
        <hr>
        Email: <input type="text" class="form-control" value="<% out.println(currUser.getEmail()); %>" name="email"> <br>
        Brugernavn: <input type="text" class="form-control" value="<% out.println(currUser.getUsername()); %>" name="username"> <br>
        <input type="submit" class="btn btn-default" value="Indsend Oplysninger" />
    </form>
</div>

将 JSP 导入 JSP 时,重要的是要知道如果 1. 重复局部变量,它们会发生冲突。2. 某些 HTML 标签不正确。

您的预期用途对我来说似乎很复杂,因为我不太了解它,抱歉:3 但如果您无法使其正常工作,请考虑将其扔到会话中,如果是一次性使用,则在使用后将其删除.


推荐阅读