我有两个必须使用相同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的);
答案 0 :(得分:2)
创建一个外部.js文件并从两个JSP页面引用它,如下所示:
<script src="displaydate.js" type="text/javascript"></script>