您的位置:首页 > Web前端 > JavaScript

dropzone.js点击删除图片按钮后只执行action不跳转到新的jsp页面,也不刷新本页面

2015-03-03 10:50 411 查看
使用dropzone.js的过程中,需要实现点击删除按钮后执行action修改已经保存的图片列表(用一个数组来维护该列表),此时可用如下方法:

在jsp页面中添加jquery支持,然后添加如下ajax代码:

< script type= "text/javascript">
function deleteImage(name){
$.ajax({
url:'<%=path%>/imageDeleteAction?imagename= '+name,
type : 'POST',
data : $(document.form1).serialize(),
success : function(data) {},
error : function() {
alert( '发生错误');
}
});
}
</script>


因为需要知道要删除的图片名字才能在action中进行删除,所以需要传递一个参数;在dropzone.js中修改代码:

q._removeLink.addEventListener( “click”,function(s){deleteImage(q.name);……

其中deleteImage()函数即为上述js定义的函数,q.name就是图片的名字。

在struts.xml中对action进行配置:

<package name= "addWeapon" extends ="json-default" namespace="/" >
<action name= "imageDeleteAction"
class ="imageUploadAction" method="deleteImage" >
<result name= "null" type ="json" >
/WEB-INF/admin/addWarship </result>
</action>
</package>


action实现:

遍历保存的文件名称列表,如果文件名是以删除的文件名结尾的文件(文件列表中保存的文件名是“UUID+原始文件名”),则从文件列表中移除。

public String deleteImage(){
imagesPath=(List<String>) ActionContext.getContext().getSession().get( "imagesPath");
for(int i=0;i<imagesPath.size();i++){
if(imagesPath .get(i).toString().endsWith(imagename)){
imagesPath.remove(i);
break;
}
}
ActionContext. getContext().getSession().put("imagesPath", imagesPath );
return null ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: