我在jsp页面里面用java代码做判断,发现用户提交了错误信息时用javascript弹出消息框提示用户提交错误
out.println("<SCRIPT Language = javascript>");
out.println("alert('错误的信息');");
out.println("</SCRIPT>");不过这样带来一个问题,接下来用户再次提交了正确信息后我会弹出一个页面B,里面有一个链接是返回上一页
里面调用了javascript:window.history.back()返回上一页当用户在错误提交后修正了信息再提交,然后点击B页面的返回上一页功能时会再次弹出错误提示的消息框有没有办法做到这样的功能:消息提示框只输出一次,即类似这样//页面第一次被访问时才弹出错误消息
if (fisrtViewed)
{
 alert('错误的信息');
}

解决方案 »

  1.   

    同意楼上,例如用一个boolean进行判断
      

  2.   

    不行啊 我试过这样写var isAlert = true; if (isAlert) alert('注意:点击保存配置服务器端的配置才会被修改'); isAlert = false;但还是一样 后退时会费出页面 因为var isAlert = true又被执行了一次
      

  3.   

    不知道javascript有没有static变量
      

  4.   

    既然用了javascript就直接在前端进行判断就行了..
    如果要在后端进行判断,则没必须再用javascript的alert进行输出, 这样会不友好....
    在需要提示的信息的见面加上<c:out value="${error}" scope="request" />这样的语句... 错误信息在后台生成存放到request对象中..
    如果request中没有error数据,则任何东西都不输出....javascript:window.history.back();这个相当与从浏览器缓存中读取上次浏览的静态页面....  加判断应该是没用的...
    如果需要更新上次页面的信息需要重新向后台发送请求....
      

  5.   


    因为需要在后台操作javabean时才能知道数据是否错误,所以没办法在前台判断在数据出错后因为不想影响页面效果,所以选择了用对话框提示<c:out 是输出到网页 不适合 且即使用<c:out 估计后退时出会出现同样的问题
      

  6.   

    javascript:window.history.back(-2); 表示后退两个页面.
      

  7.   

    嗯,学习一下,每次刷新页面时都要load js吧,不知道可不可以做到楼主想要的效果
      

  8.   


    1. 需要在后台操作javabean时才能知道数据是否错误,所以没办法在前台判断 ;
        使用Ajax技术可以很好的处理这个问题...   例如用户注册时对 当前用户输入的用户是否已经被使用的校验....2. 在数据出错后因为不想影响页面效果,所以选择了用对话框提示
        使用Alert对话框 已经大大影响了用户的操作体验... 如果用户不点击“确定”按钮,用户在当前浏览器页面什么事情都干不成...  楼主可以关注一下其他站点对错误提示信息的处理,几乎没有用alert做的... 3. <c:out 是输出到网页 不适合
        网页就是用来做显示的, 如果这个不适合就没有更适合的了     页面设计的时候需要考虑到如何做错误提示...4. 里面调用了javascript:window.history.back();
        返回上一页有两种,  楼主用的是浏览器自带的默认返回....  返回后只会执行已经生成好的html页面...  只能执行已经生成好的javascript代码..  如果用户填写了表单,则还会保存之前用户填写的表单数据...
    具体的处理方式 楼主可以参考其他站点,, 去填写个注册用户的表单, 提交后再浏览器里点退后按钮, 看看是如何实现的...