在web项目中,我们经常需要弹出一个提示框alert来提示操作信息 比如alert('操作成功');
最简单的就是在后台把信息传到jsp页面,然后jsp页面判断弹出,但这样往往需要在每个jsp页面都写一段js代码,有个小技巧就是先把信息统一传到一个jsp页面,然后jsp页面弹出,再跳转到指定页面。
首先,我们先写一个js文件:
//提示信息,并返回或跳转到goUrl
function alertMsg(msg, goUrl){
if(msg=="" && goUrl!="back"){
window.location=goUrl;
}else if(msg!="" && goUrl=="back"){
alert(msg);
history.back();
}else if(msg!="" && goUrl!="back"){
alert(msg);
window.location=goUrl;
}
}
然后我们需要建一个接口类
public interface MyMsg {
String ADD_SUCCESS = "addSuccess";
String ADD_FAIL = "addFail";
}
再来建一个jsp页面 showMsg.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>提示信息</title>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sqb.js"></script></head>
<body>
<c:set var="msg" value="${map.msg}" />
<c:choose>
<c:when test="${msg=='delSuccess'}">
<script type="text/javascript">alertMsg("删除成功","跳转页面");</script>
</c:when>
<c:when test="${msg=='delFail'}">
<script type="text/javascript">alertMsg("删除失败.","跳转页面");</script>
</c:when>
</c:choose>
</body>
</html>
再action里面我们就可以这样写
public class test extends ActionSupport implements MyMsg{
@Action(value="activityList",results = {@Result(name=SUCCESS,location = "/showMsg.jsp")})
public String test(){
map.put("msg",ADD_SUCCESS);
return SUCCESS;
}
}
这样我们就完成了