欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ajax的json传值方式在jsp页面中的应用

程序员文章站 2022-07-02 16:17:48
jsp页面: 复制代码 代码如下: $(document).ready(function() { setinterval(function mytimer() { //al...
jsp页面
复制代码 代码如下:

$(document).ready(function() {
setinterval(function mytimer()
{
//alert('a');
getviews();
},1000);
});
//播放
function getviews(){
$.ajax({
'url':"${pagecontext.request.contextpath}/video/getvideos.action?r="+math.random()+"&open=1",
'data': '',
'datatype': 'json',
'type': 'get',
'error': function(data){
alert("error");
return false;
},
'success': function(data) {
if(null != data && '' != data){
//alert(data.updateflag);
if(data.updateflag==0){//如果data.updateflag=0 不刷新
//alert("data.updateflag=0");
}
else{
if(data.videoids != null && data.videoids != ""){
var listids=data.videoids;
var i=0;
for(;i<listids.length;++i){
//alert("show:"+i+"id=:"+listids[i]);
showview(listids[i],i);//播放
}
for(var j=listids.length;j<9;++j){
//alert("stop:"+j);
stopplayvideo(j);
}
}
}
}
}
});
}

此处由于此代码实现的功能是通过ajax定时访问后台hashtable,所以为了是系统区别url不同、ajax返回值不同,特意在url后加上r=+math.random()
java后台处理方法
复制代码 代码如下:

/**
* 双服务器九宫格显示
*
* @return
*/
@action(value = "getvideos" ,results={
@result(name = success,location="videos2.jsp")
})
public string getvideos() {
if (open == 301) {
return success;
} else {
try {
videohashtable videohashtable = videohashtable.getinstance();
hashtable<long, long> hashtable = videohashtable.getrht();
map map = new hashmap<string, list<long>>();
if (videohashtable.isupdateflag() == true) {
enumeration en = hashtable.keys();
videoids = new arraylist<long>();
while (en.hasmoreelements()) {
long key = (long) en.nextelement();
// vth.get(key);
videoids.add(key);
}
map.put("videoids", videoids);
map.put("updateflag", 1l);
videohashtable.setupdateflag(false);
system.out.println("getvideos:" + videoids);
sendmessage.sendobject(map);
} else {
map.put("updateflag", 0l);
sendmessage.sendobject(map);
}
} catch (exception e) {
e.printstacktrace();
}
return null;
}
}

关键要把传到jsp的页面存到map中,在通过json传值。
sendmessage.sendobject(map)方法所在类及方法
复制代码 代码如下:

package com.supcon.honcomb.utils;
import java.io.ioexception;
import java.io.printwriter;
import javax.servlet.http.httpservletresponse;
import org.apache.http.httpresponse;
import org.apache.struts2.servletactioncontext;
public class sendmessage {
public static void sendmessage(string responsetext){
try {
printwriter out = servletactioncontext.getresponse().getwriter();
out.print(responsetext);
out.close();
} catch (ioexception e) {
e.printstacktrace();
}
}
public static void sendobject(object obj) throws exception {
printwriter pw;
string rtn = "";
httpservletresponse response = servletactioncontext.getresponse();
response.setcontenttype("text/html");
response.setcharacterencoding("utf-8");
rtn = jsonutil.jsonfromobject(obj);
pw = response.getwriter();
pw.write(rtn);
pw.flush();
pw.close();
}
}