Пропущенные modelAttributes не заполняются для импортированных компонентов на страницах jsp - PullRequest
1 голос
/ 07 мая 2019

На мой взгляд, я импортирую компоненты jsp на основе логического значения, которое передается из контроллера Spring. Список объектов также передается из контроллера, и они должны заполнять поля в импортируемых компонентах.

Контроллер:

   List<LeadUser> leadUsersList = null;
        leadUsersList = businessApiClient.getUsersBySignUpType(type, id);
        if (leadUsersList != null || leadUsersList.size() != 0) {
            model.addAttribute("leadUsersList", leadUsersList);
            model.addAttribute("displayTable", true);
            if("webinars".equals(type)){
                model.addAttribute("displayWebinarTable", true);
            } else if("events".equals(type)){
                model.addAttribute("displayEventTable", true);
            } else if("info".equals(type)){
                model.addAttribute("displayInfoTable", true);
            } else if("booklets".equals(type)){
                model.addAttribute("displayBookletTable", true);
            }

Мнение:

 <c:when test="${displayTable}">
    <div class="tab-content">
        <div class="tab-pane fade in active">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-md-11 col-md-offset-1">
                        <div class="page-card">
                            <div class="page-card__body">
                                <c:choose>
                                    <c:when test="${displayBookletTable}">
                                            <jsp:include page="components/report-table-comopnents/booklet_signup.jsp" />
                                    </c:when>
                                    <c:when test="${displayEventTable}">
                                        <jsp:include page="components/report-table-comopnents/event_signup.jsp" />
                                    </c:when>
                                    <c:when test="${displayInfoTable}">
                                        <jsp:include page="components/report-table-comopnents/info_signup.jsp" />
                                    </c:when>
                                    <c:when test="${displayWebinarTable}">
                                        <jsp:include page="components/report-table-comopnents/webinar_signup.jsp" />
                                    </c:when>
                                </c:choose>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</c:when>

Компоненты таблицы импорта:

booklet_signup.jsp (остальные три также похожи на этот):

<div class="table-responsive">
  <table id="bookletLeadsTable"
     class="table table-bordered table-striped dataTable">
 <thead>
  <tr>
   <th>Email</th>
   <th>Business Name</th>
   <th>Contact Name</th>
   <th>Phone Number</th>
   <th>Ref Page</th>
   <th>Created Date & Time</th>
 </tr>
 </thead>
 <tbody>
    <c:forEach items="${leadUsersList}" var="item">
      <tr>
       <td>${item.email}</td>
       <td>${item.businessName}</td>
       <td>${item.contactName}</td>
       <td>${item.phoneNo}</td>
       <td>${item.refPage}</td>
       <td>${item.createdTime}</td>
      </tr>
     </c:forEach>
   </tbody>
  </table>
 </div>

<script type="text/javascript">
  $(document).ready(function () {
   $('#bookletLeadsTable').DataTable({
    "paging": false,
    "info": false
    })
  });
</script>

Теперь идентификатор проблемы тегами jstl в импортирующих компонентах (booklet_signup.jsp) не заполняется атрибутом модели leadUsersList. Когда это не imporetd и остается в главном представлении, его заполняется хорошо. Что здесь могло пойти не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...