2014-10-18 2 views
0

Я пытаюсь получить список объектов с сервера и визуализировать его на html с помощью Backbone.js Но ошибка «- не может быть решена».BackBone.js: "_ не может быть разрешено"

Мой код выглядит следующим образом:

<!DOCTYPE html> 
<html> 
<head> 
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter- bootstrap/3.2.0/js/bootstrap.min.js"> 
</head> 
<body> 
    <div class="container"> 
     <div class="page"> 

     </div> 
    </div> 

    <script type="text/template" id="product-list-template"> 
    <table class="table striped"> 
     <thead> 
      <tr> 
       <th>Category</th> 
       <th>Description</th> 
      </tr> 
     </thead> 
     <tbody> 
      <% _.each(products, function(product){ %> 
       <tr> 
        <td><%= product.get('category')%></td> 
        <td><%= product.get('description')%></td> 
       </tr> 
      <%}); %> 
     </tbody> 
    </table> 
    </script> 

     <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"> </script> 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script> 

    <script type="text/javascript"> 

     var Products = Backbone.Collection.extend({ 
      url: '/VeggieFresh/veggie/product/1' 
     }); 

     var ProductList = Backbone.View.extend({ 
      el: '.page', 
      render: function(){ 
       var that = this; 
       var products = new Products(); 
       products.fetch({ 
        success : function(products){ 
         var template = _.template($('#product-list-template').html(), {products: products.models}); 
         that.$el.html(template); 
        } 
       }); 
      } 
     }); 
     var Router = Backbone.Router.extend({ 
      routes : { 
       '':'home' 
      } 
     }); 

     var productList = new ProductList(); 
     var router = new Router(); 
     router.on('route:home', function(){ 
      console.log('Backbone loaded.'); 
      productList.render(); 
     }); 

     Backbone.history.start(); 
    </script> 
</body> 
</html> 

Ошибка заключается в следующем: org.apache.jasper.JasperException: Не удается скомпилировать класс для JSP:

An error occurred at line: 30 in the jsp file: /index.jsp 
_ cannot be resolved 
27:    </tr> 
28:   </thead> 
29:   <tbody> 
30:    <% _.each(products, function(product){ %> 
31:     <tr> 
32:      <td><%= product.get('category')%></td> 
33:      <td><%= product.get('description')%></td> 


An error occurred at line: 30 in the jsp file: /index.jsp 
products cannot be resolved to a variable 
27:    </tr> 
28:   </thead> 
29:   <tbody> 
30:    <% _.each(products, function(product){ %> 
31:     <tr> 
32:      <td><%= product.get('category')%></td> 
33:      <td><%= product.get('description')%></td> 

Любая помощь/предложения по эта проблема высоко ценится.

ответ

0

Похоже, вы смешиваете Java и Javascript. Когда вы делаете что-то вроде:

<% _.each(products, function(product){ %> 

в файле JSP, он получает рассматривается как Java кода. Тем не менее, код, который вы имеете внутри блока на <%%>:

_.each(products, function(product){ 

является Javascript код.

Поскольку вы не можете комбинировать два разных языка Java и Javascript, вы получаете ошибку Java (JasperException).

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