上个星期做了上传Excel的功能,本来想使用jQuery的uploadify上传,无奈自己学艺不精,老是会报一些乱起八糟的错误,所以到头来还是用的Form提交。但是因为大部分时间都在研究uploadiyfy,所以后来时间紧迫,匆忙之间写完了功能,被批页面太丑,功能不好用,本来一个问题解决,但是又随之而来三个变动,总之就是要求页面删除是真删除。不能等点击保存之后在信息持久化。那就用到ajax了,之前一直心痒痒的想试试jQuery的ajax,这次正好拿来练手
由于系统是很久之前的框架,页面的JS引用包括prototype,$符号被占用了,现在引入jQuery要先解决冲突问题
jQuery.noConflict();这条语句就是申明$符号的冲突,以下的jQuery都使用jQuery的全称就好了。(当然也可以自定义符号代替$符号,此处不再赘述)
注意 此处很关键 jQuery.noConflict()一定要写在JS方法的一开始,这样下面的初始化就不会引发其他的冲突。当然也可以写到window.onload()里面。
废话不说 页面的JS代码
function delall(){showHideLayer('loading');
jQuery.ajax({
type:"post",
data:"qyxxid=<%=request.getParameter("qyxxId")%>",
url:"<%=request.getContextPath()%>/gd/delallPs.do",
dataType:"json",
success:function(data,status){
if(data){
clearform();
showHideLayer('loading');
}else{
showHideLayer('loading');
alert('未删除完毕,请重试');
}
}
});
}
Action代码
public ActionForward delallPs(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response,RequestHashNew reh) throws Exception {
String sqqyxx = request.getParameter("qyxxid");
String smxxid = request.getParameter("smxxid");
try {
Crypt crypt = new Crypt();
PowerSituation pSituation =new PowerSituation();
if(null!=sqqyxx&&!sqqyxx.equals("")){
sqqyxx = crypt.decrypt(sqqyxx);
pSituation.setQyxxid(Integer.valueOf(sqqyxx));
}
if(null!=smxxid&&!smxxid.equals("")){
pSituation.setSsxxid(Integer.valueOf(smxxid));
}
powersituationservice.deletePowerSituation(pSituation);
response.getWriter().print(true);
} catch (RuntimeException e) {
// TODO Auto-generated catch block
Logger.getLogger(PowersituationAction.class).error("delAllPSAjax", e);
response.getWriter().print(false);
}
return null;
}
一开始还担心Struts1里面怎么返回ajax的状态值,没想到直接写就可以了。