日期:2014-05-17  浏览次数:20723 次

使用javascript弹出消息框的问题
我在jsp页面里面用java代码做判断,发现用户提交了错误信息时用javascript弹出消息框提示用户提交错误

Java code

                out.println("<SCRIPT Language = javascript>");
                out.println("alert('错误的信息');");
                out.println("</SCRIPT>");




不过这样带来一个问题,接下来用户再次提交了正确信息后我会弹出一个页面B,里面有一个链接是返回上一页
里面调用了javascript:window.history.back()返回上一页

当用户在错误提交后修正了信息再提交,然后点击B页面的返回上一页功能时会再次弹出错误提示的消息框

有没有办法做到这样的功能:

消息提示框只输出一次,即类似这样

//页面第一次被访问时才弹出错误消息
if (fisrtViewed)
{
 alert('错误的信息');
}

------解决方案--------------------
既然用了javascript就直接在前端进行判断就行了..
如果要在后端进行判断,则没必须再用javascript的alert进行输出, 这样会不友好....


在需要提示的信息的见面加上<c:out value="${error}" scope="request" />这样的语句... 错误信息在后台生成存放到request对象中..
如果request中没有error数据,则任何东西都不输出....

javascript:window.history.back();

这个相当与从浏览器缓存中读取上次浏览的静态页面.... 加判断应该是没用的...
如果需要更新上次页面的信息需要重新向后台发送请求....

------解决方案--------------------
同意楼上的,上次页面的信息其实放在Ie缓存,返回肯定没用的,试试跳转
------解决方案--------------------
探讨

因为需要在后台操作javabean时才能知道数据是否错误,所以没办法在前台判断

在数据出错后因为不想影响页面效果,所以选择了用对话框提示

<c:out 是输出到网页 不适合

且即使用 <c:out 估计后退时出会出现同样的问题