action把src=''"和href=“”又执行了一次,有什么方法可以阻止呢

页面中得<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标签 就木有问题。