我的本意是想通过js来解决刷新页面时超链接重复提交的问题,可是加上js代码后页面跳转总是不对,请高手指点,代码如下:
这是页面超链接的代码:
<s:iterator value="dirList">
<a href="mysong!myDirSongList?dirId=${dirNum }&userId=${session.userId }"><s:property value="dirName"/></a> <a href="#" onclick="javascript:deleteD('${dirNum }','${session.userId }');">删除</a>
</s:iterator > 这是js 代码:
function deleteD(dirId,userId){ if(confirm("确定删除?")){
window.location.href = "mysong!delDir?dirId="+dirId+"&userId="+userId;
}else{
return;
}
}
这是struts2.xml的配置:
<action name="login" class="qqAction">
<result name="saved">/dirsongs.jsp</result>
</action> 这是后台action里要调用的方法:
public String delDir(){
this.dirList = this.qqManager.deleteDir(this.userId, this.dirId);
return "dirsongs";
} 结果本该是跳转到dirsongs.jsp,但是经过多次测试,后台的action里的delDir()方法会执行,如果struts.xml里如果没有配<result name="dirsongs">/dirsongs.jsp</result>也会报错,而且配置了<result name="input">/dirsongs.jsp</result>,但是虽然会找到相应的result ,但是并不会跳转到相应的dirsongs.jsp,而是跳转到首页,如果把不用js只是普通的超链接就能顺利执行通过,只是无法控制刷新时重复提交。
这是页面超链接的代码:
<s:iterator value="dirList">
<a href="mysong!myDirSongList?dirId=${dirNum }&userId=${session.userId }"><s:property value="dirName"/></a> <a href="#" onclick="javascript:deleteD('${dirNum }','${session.userId }');">删除</a>
</s:iterator > 这是js 代码:
function deleteD(dirId,userId){ if(confirm("确定删除?")){
window.location.href = "mysong!delDir?dirId="+dirId+"&userId="+userId;
}else{
return;
}
}
这是struts2.xml的配置:
<action name="login" class="qqAction">
<result name="saved">/dirsongs.jsp</result>
</action> 这是后台action里要调用的方法:
public String delDir(){
this.dirList = this.qqManager.deleteDir(this.userId, this.dirId);
return "dirsongs";
} 结果本该是跳转到dirsongs.jsp,但是经过多次测试,后台的action里的delDir()方法会执行,如果struts.xml里如果没有配<result name="dirsongs">/dirsongs.jsp</result>也会报错,而且配置了<result name="input">/dirsongs.jsp</result>,但是虽然会找到相应的result ,但是并不会跳转到相应的dirsongs.jsp,而是跳转到首页,如果把不用js只是普通的超链接就能顺利执行通过,只是无法控制刷新时重复提交。
试下了,我以前写过,这样写的。
window.location.href = "mysong!delDir.action?dirId="+dirId+"&userId="+userId;既然用struts,就用action来跳转吧