1

我有两个必须使用相同 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 下。

我使用标签来呈现这个脚本的 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);

4

1 回答 1

2

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

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

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

于 2012-12-14T22:25:37.887 回答