你可以直接定时用ajax去数据读取数据有新邮件就返回显示即可。

解决方案 »

  1.   

    我会用定时调用function,可是我不知道怎么在funtion里面去调用action,别人说用ajax,我不怎么会,清告诉一下吧谢谢
      

  2.   

    [code=HTML][/co<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>AJAX简单应用</title>
    <script language="javascript">
    //创建XMLHttpRequest对象
    var request = false;
    try {
    request = new XMLHttpRequest();
    } catch (trymicrosoft) {
    try {
    request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
    try {
    request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
    request = false;
    }
    }
    }
    if (!request)alert("Error initializing XMLHttpRequest!");
    //获取信息
    function getInfo() {
    var url = "info.asp?id=" + Math.random();
    request.open("GET", url, true);
    request.onreadystatechange = updatePage;
    request.send(null);
    }
    //更新页面
    function updatePage() {
    if (request.readyState == 4) {
    if (request.status == 200) {
    var response = request.responseText;
    document.getElementById("div1").innerText = response;
    }else if(request.status == 404) {
    alert ("Requested URL is not found.");
    } else if (request.status == 403) {
    alert("Access denied.");
    } else
    alert("status is " + request.status);
    }
    }
    </script>
    </head>
    <body>
    <input name="btn" type="button" id="btn" value="获取" onclick="getInfo();" />
    <div id="div1">此处显示新 Div 标签的内容</div>
    </body>
    </html>de]
      

  3.   

    谢谢各位已经有了解决方法了,今天下午我终于给弄出来了。 是这样写的: Action里面 
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            try {
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                MessageForm messageForm = (MessageForm)form;            UserBean userBean = (UserBean)request.getSession().getAttribute("userBean");//得到用户信息的JavaBean            List list = ims.ifMessage(Integer.parseInt(userBean.getUser_dwid()));//这个方法为显示状态为未读的信息列表;            //如果有信息,则输出信息的id号;否则则输出0
                if(list.size()>0){
                    DccMessage dccMessage = (DccMessage)list.get(0);
                    out.print(dccMessage.getId());
                }else{
                    out.print("0");
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;JSP里面的Javascript 引用了prototype1.4.js<script type="text/javascript">
    setInterval("showMessage()", 30000);//每隔30秒执行一次//定义Ajax
    function showMessage(){
    new Ajax.Request("/DCCCZXT/message/ifMessageAction.do",{method:'get',onComplete:po});
    }//如果接收到Action里面out出来的值为非0的情况下,则打开该新消息的窗口
    function po(res){
    var a=res.responseText
    if(a!=0){
        window.open("/DCCCZXT/message/openMessageAction.do?id="+res.responseText,"","width=320,height=400");
    }
    }</script>