2012-12-14 29 views
1

我有兩個JSP頁面必須使用相同的JavaScript。該腳本在錨點上附加了一個函數。當用戶點擊錨點時,該函數將通過控制器和服務層調用數據庫操作。在兩個JSP頁面中重用javascript的好習慣是什麼?

這兩個JSP頁面都有這些錨點。因此,如果我可以在這兩個頁面中重複使用此腳本,那將會很好。我打算創建一個只包含此腳本的JSP頁面,並將這些頁面包含在這兩個jsp頁面中。這是重新使用JavaScript的好習慣嗎?還有其他更好的方法來做到這一點嗎?

這是腳本的一個片段:

$(document).ready(function(){ 

     $('a[name*="like"]').click(function() { 

      var hrefName = $(this).attr("name"); 
      var href = $(this); 
      $.ajax({ 
        type: "POST", 
        url: "likeARecipe", 
        data: 'recipeId=' + $(this).attr("title") + '&operation=' + $(this).attr("name"), 
        success: function() { 

         if(hrefName == 'unlike') 
         { 
          $(href).attr("name","like"); 
          $(href).text("like"); 
         }else { 
          $(href).attr("name","unlike"); 
          $(href).text("unlike"); 
         } 
        } 
       }); 
       return false; 
     }); 



     }); 

UPDATE

我決定把腳本轉換爲common.js腳本。我把這個腳本放在scripts/common.js下。

我使用標記來呈現此腳本的URL。

<spring:url value="/resources/scripts/common.js" var="common_js" /> 
<script src="${common_js}" type="text/javascript"><jsp:text/></script> 

我配置Spring通過上下文文件specfying這些資源來閱讀這個腳本:

<resources location="/, classpath:/META-INF/web-resources/" mapping="/resources/**"/> 

然而,春天沒有加載在JSP頁面的腳本。任何有關如何解決問題的建議都會引發問題?

UPDATE

我找到了解決這個問題。我必須修改腳本。我在函數()中包含腳本:

(function(){ 
    alert("test"); 
    $(document).ready(function(){ 

     $('a[name*="like"]').click(function() { 


      var hrefName = $(this).attr("name"); 
      var href = $(this); 
      $.ajax({ 
        type: "POST", 
        url: "likeARecipe", 
        data: 'recipeId=' + $(this).attr("title") + '&operation=' + $(this).attr("name"), 
        success: function() { 

         if(hrefName == 'unlike') 
         { 
          $(href).attr("name","like"); 
          $(href).text("like"); 
         }else { 
          $(href).attr("name","unlike"); 
          $(href).text("unlike"); 
         } 
        } 
       }); 
       return false; 
     }); 
     }); 

})(jQuery);

+2

把它們放在一個共同的'.js'文件? –

+0

我會給它一個:) – zfranciscus

+0

這是一個很好的解決方案,你也可以在'.jspf'文件中包含這個函數。這不是一個更好的解決方案 - 只是另一個解決方案;) – alfasin

回答

相關問題