在两个JSP页面中重用javascript的好习惯是什么?

时间:2012-12-14 22:22:26

标签: java javascript jsp

我有两个必须使用相同javascript的JSP页面。该脚本在锚点上附加函数。当用户单击锚点时,此函数将通过控制器和服务层调用数据库操作。

两个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; 
         });



      });

更新

我决定将脚本放入common.js脚本中。我把这个脚本放在scripts / common.js下。

我使用tag来呈现此脚本的URL。

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

我通过在上下文文件中指定这些资源来配置spring来读取此脚本:

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

但是,spring没有在JSP Pages中加载脚本。关于解决问题的方法有什么建议吗?

更新

我找到了解决这个问题的方法。我必须修改脚本。我将脚本包含在函数()中:

(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的);

1 个答案:

答案 0 :(得分:2)

创建一个外部.js文件并从两个JSP页面引用它,如下所示:

<script src="displaydate.js" type="text/javascript"></script>

看看这里:http://www.javascriptkit.com/javatutors/external.shtml