2015-02-18 2 views
1

Вчера все работало нормально, но сегодня я сталкиваюсь с этой досадной пустой страницей всякий раз, когда пытаюсь запустить приложение из среды IDE.Почему я получаю пустую страницу при запуске моего приложения из Netbeans?

Мой сервер Glassfish/port4848 затем запускается из IDE http://localhost:8080/ecommerce/

Проблема, кажется, когда я добавляю эти две библиотеки ссылки в верхней части страницы:

<!DOCTYPE html> 
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 

Sql statetments

<sql:query var="selectedCategory" dataSource="jdbc/ecommerce"> 
    SELECT name FROM category WHERE id = ? 

<sql:param value="${pageContext.request.queryString}"/> 
</sql:query> 

<sql:query var="categoryProducts" dataSource="jdbc/ecommerce"> 
    SELECT * FROM product WHERE category_id = ? 
    <sql:param value="${pageContext.request.queryString}"/> 
</sql:query> 

Когда я удаляю инструкции SQL сверху, страница загружается отлично, когда я запрашиваю ее в локальном браузере. Дело в том, мне нужны библиотеки, чтобы иметь возможность запускать эти JSTL:

Категория страница/левый столбец (вертикальная панель меню)

<c:forEach var="category" items="${categories.rows}"> 

     <c:choose> 
      <c:when test="${category.id == pageContext.request.queryString}"> 
       <div class="categoryButton" id="selectedCategory"> 
        <span class="categoryText"> 
         ${category.name} 
        </span> 
       </div> 
      </c:when> 
      <c:otherwise> 
       <a href="category?${category.id}" class="categoryButton"> 
        <div class="categoryText"> 
         ${category.name} 
        </div> 
       </a> 
      </c:otherwise> 
     </c:choose> 
    </c:forEach> 

Отображение продукта в таблице (правая колонка/продукты контейнер)

<c:forEach var="product" items="${categoryProducts.rows}" varStatus="iter"> 

    <tr class="${((iter.index % 2) == 0) ? 'lightBlue' : 'white'}"> 
     <td> 
      <img src="${initParam.productImagePath}${product.name}.png" 
       alt="${product.name}"> 
     </td> 
     <td> 
      ${product.name} 
      <br> 
      <span class="smallText">${product.description}</span> 
     </td> 
     <td> 
      &euro; ${product.price}/unit 
     </td> 
     <td> 
      <form action="addToCart" method="post"> 
       <input type="hidden" 
         name="productId" 
         value="${product.id}"> 
       <input type="submit" 
         value="add to cart"> 
      </form> 
     </td> 
    </tr> 

</c:forEach> 

Я хотел бы уточнить, что у меня нет проблемы с моей индексной страницей, которая также содержит JSTL и две ссылки наверху. Проблема только в моей странице категории.

Полный Категория Исходный код:

<!DOCTYPE html> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> 

<%-- 
    Document : category 
    Created on : Feb 01, 2015, 7:56:19 PM 
    Author  : PC 
--%> 


<sql:query var="categories" dataSource="jdbc/ecommerce"> 
    SELECT * FROM category 
</sql:query> 

     <sql:query var="selectedCategory" dataSource="jdbc/ecommerce"> 
    SELECT name FROM category WHERE id = ? 
    <sql:param value="${pageContext.request.queryString}"/> 
</sql:query> 

    <sql:query var="categoryProducts" dataSource="jdbc/ecommerce"> 
    SELECT * FROM product WHERE category_id = ? 
    <sql:param value="${pageContext.request.queryString}"/> 
</sql:query> 


<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

     <title>Ecommerce | Online Shopping</title> 

     <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> 
     <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> 

     <link rel="stylesheet" type="text/css" href="css/category.css"/> 
     <link rel="stylesheet" type="text/css" href="css/header.css"/> 
     <link rel="stylesheet" type="text/css" href="css/footer.css"/> 
    </head> 

    <body style="margin: 0pt auto; padding: 0pt; max-width: 100%; width: 100%;"> 


     <div id="store_container"> 
<div id="store"> 
<div style="text-align: center;" id="category"> 
<div id="items">categories 
</div> 
<div class="cat_row"> 
<div style="text-align: left;"><span style="font-weight: bold;"><span style="background-color: rgb(239, 239, 239);">Brand new 
products</span><br> 
</span><span style="font-weight: normal;"></span><span style="font-weight: bold; background-color: rgb(239, 239, 239);">Items 
on Sale</span><br> 
<span style="text-decoration: underline;"></span></div> 
</div> 
<div class="cat_row"> 
<div style="text-align: left;"><span style="text-decoration: underline;">Shop 
by technology</span><br> 
<br> 
<c:forEach var="category" items="${categories.rows}"> 

     <c:choose> 
      <c:when test="${category.id == pageContext.request.queryString}"> 
       <div class="categoryButton" id="selectedCategory"> 
        <span class="categoryText"> 
         ${category.name} 
        </span> 
       </div> 
      </c:when> 
      <c:otherwise> 
       <a href="category?${category.id}" class="categoryButton"> 
        <div class="categoryText"> 
         ${category.name} 
        </div> 
       </a> 
      </c:otherwise> 
     </c:choose> 

    </c:forEach> 
<br> 
</div> 
</div> 
<div class="cat_row"> 
</div> 
</div> 
<div style="text-align: center;" id="thumbnails"> 
<div id="items"> Featured Items | ${selectedCategory.rows[0].name} 
</div> 
<br> 
<div style="text-align: left;"> 
<div class="item_col">pages 1-2-3-4-5-6-7-8-10...<br> 
</div> 
<div style="text-align: left;" class="item_col2">24 per 
page&nbsp;&nbsp; 48 per page&nbsp;&nbsp; 96 per page&nbsp;&nbsp; View 
All<br> 
</div> 
</div> 
<br> 

<div id="thumb_container"> 
<table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="0"> 

    <c:forEach var="product" items="${products}" varStatus="iter"> 
    <tbody> 
    <tr> 
     <td style="vertical-align: top; width: 275px;"><img src="${initParam.productImagePath}${product.name}.png" 
        alt="${product.name}"></td> 
     <td style="vertical-align: top; width: 275px;"><img src="${initParam.productImagePath}${product.name}.png" 
        alt="${product.name}"></td> 
     <td style="vertical-align: top; width: 275px;"><img src="${initParam.productImagePath}${product.name}.png" 
        alt="${product.name}"></td> 
    </tr> 
    <tr> 
     <td style="vertical-align: top; width: 275px;">${product.name}<br> 
     </td> 
     <td style="vertical-align: top; width: 275px;">${product.name}<br> 
     </td> 
     <td style="vertical-align: top;">${product.name}<br> 
     </td> 
    </tr> 
    <tr> 
     <td style="vertical-align: top; width: 275px;">&cad; ${product.price}/unit<br> 
     </td> 
     <td style="vertical-align: top;">&cad; ${product.price}/unit<br> 
     </td> 
     <td style="vertical-align: top;">&cad; ${product.price}/unit<br> 
     </td> 
    </tr> 
    <tr> 
     <td style="vertical-align: top; width: 275px;"> 
     <table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="0"> 
     <tbody> 
      <tr> 
      <td style="vertical-align: top; width: 50%;"><form action="addToWishlist" method="post"> 
        <input type="hidden" 
          name="productId" 
          value="${product.id}"> 
        <input type="submit" 
          value="Add To Wishlist"> 
       </form><br> 
      </td> 
      <td style="vertical-align: top;"><form action="addToCart" method="post"> 
        <input type="hidden" 
          name="productId" 
          value="${product.id}"> 
        <input type="submit" 
          value="Add To Cart"> 
       </form><br> 
      </td> 
      </tr> 
     </tbody> 
     </table> 
     <br> 
     </td> 
     <td style="vertical-align: top;"> 
     <table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="0"> 

      <tbody> 
      <td style="vertical-align: top; width: 50%;"><form action="addToWishlist" method="post"> 
        <input type="hidden" 
          name="productId" 
          value="${product.id}"> 
        <input type="submit" 
          value="Add To Wishlist"> 
       </form><br> 
      </td> 
      <td style="vertical-align: top;"><form action="addToCart" method="post"> 
        <input type="hidden" 
          name="productId" 
          value="${product.id}"> 
        <input type="submit" 
          value="Add To Cart"> 
       </form></td> 
      </tr> 
     </tbody> 
     </table> 
     <br> 
     </td> 
     <td style="vertical-align: top;"> 
     <table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="0"> 
     <tbody> 
      <tr> 
      <td style="vertical-align: top; width: 50%;"><form action="addToWishlist" method="post"> 
        <input type="hidden" 
          name="productId" 
          value="${product.id}"> 
        <input type="submit" 
          value="Add To Wishlist"> 
       </form><br> 
      </td> 
      <td style="vertical-align: top;"><form action="addToCart" method="post"> 
        <input type="hidden" 
          name="productId" 
          value="${product.id}"> 
        <input type="submit" 
          value="Add To Cart"> 
       </form></td> 
      </tr> 

     </tbody> 
     </c:forEach> 
     </table> 
     <br> 
     </td> 
    </tr> 
    </tbody> 
</table> 
<br> 
<br> 
</div> 
</div> 
</div> 
</div> 

    </body> 
</html> 

Любая идея?

Большое спасибо!

+0

Это не JavaScript, а JSTL. На каком сервере вы используете свой сайт? Возможно, вам не хватает jar-файла. Вы вообще используете JSP? Или вы просто используете простой HTML и пытаетесь добавить JavaScript? –

+0

@JoachimRohde: Спасибо, что ответили. Прямо сейчас я запускаю свой сайт на GlassFish LocalHost/4848. О каком jar-файле вы говорите? Да, я использую JSP. Все мои страницы - JSP. – user23524697

+0

Где находится в вашем коде стартовый тег ''? Где находится ваш '

ответ

2

Для правильной отображения страницы не относится к taglib.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/sql" %> 

В основном это ложная оператор выбора причина.

Ваш код не соответствует переменным!
Так что <c:forEach с rowcount == 0 никогда не будет запущен, а ваша страница пуста.

  • запрос var = "selectedCategory" никогда не используется.
  • ${pageContext.request.queryString} не проверен.

Test ${pageContext.request.queryString} с: look here


<sql:query var="selectedCategory" dataSource="jdbc/ecommerce"> 
    SELECT name FROM category WHERE id = ? 

<sql:param value="${pageContext.request.queryString}"/> 
</sql:query> 
  • <c:forEach использует ${categories.rows}! откуда оно взялось?

<c:forEach var="category" items="${categories.rows}"> 

Заменить param value="a valid ID" с известным значением.

<sql:query var="selectedCategory" dataSource="jdbc/ecommerce"> 
     SELECT name FROM category WHERE id = ?  
<sql:param value="a valid ID"/> 
</sql:query> 

<c:forEach var="category" items="${selectedCategory.rows}"> 
     <div class="categoryButton" id="selectedCategory"> 
      <span class="categoryText"> 
      ${category.name} 
      </span> 
     </div> 
</c:forEach> 

Также items="${products}" не соответствие какой-либо запрос.

<c:forEach var="product" items="${products}" varStatus="iter"> 
+0

Спасибо за предоставление возможного решения. Честно говоря, я с трудом понимаю ваше объяснение ... Код, который я привел из учебника по электронной торговле Netbeans, вы можете легко проверить на своем сайте. Если вы это сделаете, проверьте шестой пункт «работа с JSTL». – user23524697

+0

@ user23524697: Если вы назвали свой запрос '

+0

Хорошо, я вас понимаю. Извините, я был немного потому что 'selectedCategory' в моем коде, я просто забыл вставить его здесь. Он должен отображать выбранную категорию в продуктах контейнер после щелчка. Я использую этот оператор '$ {selectedCategory.rows [0] .name}'. Я вставлю весь код для вас, чтобы вы могли его увидеть. – user23524697

Смежные вопросы