实现方法:
在主框架页面main.jsp 加入JS
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.messager.js"></script>
<script>
function getMessage(msg){
/*$.messager.lays(width, height);
*该方法主要用来定义弹出窗口的宽度和高度。
*/
/*$.messager.show(title,text,time);
*该方法主要定义窗口显示的内容,以及窗口显示多长时间后进行隐藏。
*如果使用默认的标题,则将title设置为0,另外title和text还可以设置为html内容进行显示。如果希望用户点击弹窗的关闭按钮才关闭
*消息框,可将time设置为0。
*/
// alert(msg);
$.messager.lays(300, 200);
$.messager.show("消息提醒",msg,10000);
}
</script>
在 bottom.jsp 中加入 ajax
<script type="text/javascript">
//20秒 访问一次setInterval("makeRequest()",20000);
function makeRequest() {
var guid = rnd();
//记住给个随机数,不然的话有缓存
var url = "ajax/getmessage.action?id=" + guid;
//创建Ajax.Request对象,对应于发送请求
var myAjax = new Ajax.Request(
url,
{
//请求方式:POST
method:'post',
//请求参数
//parameters:params,
//指定回调函数
onComplete: processResponse,
//是否异步发送请求
asynchronous:true
});
}
function processResponse(request)
{
var type = request.responseText;
type = eval('('+type+')');
//alert(type);
if (type == "0") {
}else{
//alert(xmlHttp.responseText);
//调用父窗体的获取消息js
self.parent.getMessage(type);
}
}
//创建随机数
rnd.today = new Date();
rnd.seed = rnd.today.getTime();
function rnd() {
rnd.seed = (rnd.seed * 9301 + 49297) % 233280;
return rnd.seed / (233280.0);
}
function rand(number) {
return Math.ceil(rnd() * number);
}
</script>
创建messageutil.java
package com.oa.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;public class MessageUtil {
public static void addText(String to_send_user_id,String type,String id) throws IOException{
String filePath = Project_url.getUrl()+"\\userfiles\\message\\"+to_send_user_id+".txt";
File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
BufferedWriter writer = null;
try {writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true), "utf-8"));
writer.write(type+"|"+id+"|\r\n");
} finally {
if (writer != null)
writer.close();
}
}
public static void updateText(String to_send_user_id,String type,String id) throws IOException{
String filePath = Project_url.getUrl()+"\\userfiles\\message\\"+to_send_user_id+".txt";
File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
BufferedReader reader = null;
BufferedWriter writer = null;
try {
StringBuilder temp = new StringBuilder();
reader = new BufferedReader(new FileReader(file));
String line = null;
String str = type+"|"+id+"|";
while((line = reader.readLine()) != null){
if (line.equals(str)) {
//reader.readLine().replace(type+"|"+id+"|","\n");
temp.append("");
}else{
temp.append(line+"\r\n");
}
}
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,false),"UTF-8"));
writer.write(temp.toString());
} finally {
if (writer != null)
writer.close();
if (reader != null)
reader.close();
}
}
public static String getString(String user_id) throws IOException{
String filePath = Project_url.getUrl()+"\\userfiles\\message\\"+user_id+".txt";
File file = new File(filePath);
if (!file.exists()) {
file.createNewFile();
}
BufferedReader reader = null;
StringBuilder temp = new StringBuilder();
try {
reader = new BufferedReader(new FileReader(file));
String line = null;
while((line = reader.readLine()) != null){
temp.append(line+",");
}
} finally {
if (reader != null)
reader.close();
}
return temp.toString();
}
}将需要提醒的信息 在保存时 写入 文本中。一行代表一条数据。type 是消息类型,id 是消息id,user_id是文本命名。20秒刷新一次ajax 判断 文本中是否有内容。待信息查看过后 删除文本中对应行。