页面中得<img src=""/>已经换成了<img />这样可以防止action的自动把src=“”当成本地地址再次执行一次; 不过现在的问题是前台的js会动态的给img的src 赋值和取消src的值 这个时候action又会出现之前的重复执行的情况了,据说这是struts2的拦截器的问题,请问怎么修改呢?感谢大家!
先看代码:
$(function(){ $(".ci ul li img").live("click",function(){ //点击放大图片 var src=$(this).attr("src"); $(this).parents(".ci").next(".fdtp").children("img").attr("src",src); $(this).parents(".ci").fadeOut(200); $(this).parents(".ci").next(".fdtp").fadeIn(1200);//fdtp原来是隐藏的 }) //点击缩小图片 $(".fdtp").live("click",function(){ $(this).css("display","none"); $(this).children("img").attr("src","");//此处的src被清空 $(this).prev(".ci").fadeIn(200); }) })
放大图片的时候是没有执行action的,但当缩小图片后src被清空即赋值为“”时action就执行了!
一般struts不要拦截所有的请求,否则什么css,js,图片都得经过拦截。
所以我建议换成拦截*.action试试。这样也可以减少拦截的次数,提高性能。
一般来说,当没有图片的时候是需要弄个默认的小图标的。
[quote]弄一个默认的小图标应该可以解决问题;不知道在struts2这边能不能通过修改或者增加配置解决这种问题呢?[/quote]
应该和你说的关系不大 你把web.xml发来看看
你配置成*.action试试。
直接进入页面的话会报错,可能是因为你这个直接进的jsp页面使用了struts2的标签,也就是说你的页面假如使用了struts2的标签,那么你就不能直接进去,而是通过action跳转进去。
[quote]应该不是使用了struts标签的问题,因为我把配置文件里面的*.action改回/*之后直接进去是没有报错的;要是struts标签的问题这样应该也会报错的。 [/quote]
action:假如你直接进入jsp,那么不会被struts2拦截,然后你用了struts2标签 就会出问题。
/*:那么你任何路径都会被拦截,你用struts2标签 就木有问题。