jsp中内嵌的java代码数据获取

文艺骚年丶 java  2015-12-15 10:57:08
我在jsp页面,内嵌的java代码交互的后台,但是获取的数据不是实时的,请问有什么方法 可以获取实时数据
...全文
205 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Andy_Zach 2015-12-17
首先,你的java代码放在jsp里面不好实时调用,我建议放在java类中用ajax调用!
myInterval这个方法里面实现ajax调用,然后拿到值实现你的if判断!在进入页面时要加载此方法
setInterval("myInterval()",4000);这个方法要写到myInterval方法之中,才能保证实现每个4秒刷一次
回复
文艺骚年丶 2015-12-16
引用 9 楼 xiaofanku 的回复:
看不懂我写的吗?不贴全算了。
大哥 我错了 我贴全 <%@ page import="connector.MagicalarmConnector; auth.Role;java.util.List;java.util.ArrayList;" %> <% String address = request.remoteAddr def ip = address; def name=session.username def rsdatasourc = "magicalarmtacfmdev"; def connector = MagicalarmConnector.get(name: rsdatasourc) if (connector == null) { throw new Exception("Could not find Magicalarm connector magicalarm.") } def datasource = connector.ds; def zt="select distinct dlzt from t_sys_loginuser where username =? and ip=?"; def query = "select sparm.parm_value from T_SYS_PARM sparm where sparm.parm_code='iam_kps_url'"; def kpsUrl=""; def iamZt=""; List<String> roleList = new ArrayList(); try { def sparmList = datasource.alertsAdapter.executeQuery(query, []); def ztList = datasource.alertsAdapter.executeQuery(zt, [name,ip]); ztList?.each {tree -> iamZt=tree.dlzt; } sparmList?.each {sparm -> kpsUrl=sparm.parm_value } //菜单名以iam开头的 String roleSql = """select distinct ro.role_name, case when Substr(lower(me.menu_name), 0, 3) = 'iam' THEN me.menu_name ELSE NULL END as menu_name from t_sys_Menu me, t_sys_Role_Pmit_Menu mu, t_sys_role ro, t_sys_user_resp_role re, t_sys_user us where mu.menu_id = me.menu_id(+) and mu.role_id(+) = ro.role_id and us.user_id = re.user_id and ro.role_id = re.role_id and us.user_login_name = '${session.username}'""" def rolesArray = datasource.alertsAdapter.executeQuery(roleSql, []); rolesArray?.each { if(it.role_name&&!roleList.contains(it.role_name.toString())){ roleList.add(it.role_name.toString()); } if(it.menu_name&&!roleList.contains(it.menu_name.toString())){ roleList.add(it.menu_name.toString()); } } } catch (Exception ex) { println "抱歉,数据库连接异常:" + ex.getMessage(); } %> <html> <head> <title><g:layoutTitle default="${message(code:'mainLayout.title')}"></g:layoutTitle></title> <g:layoutHead/> <g:render template="/layouts/layoutHeader"></g:render> <link rel="stylesheet" type="text/css" href="${createLinkTo(file: 'css/tab_menu.css')}"/> <script type="text/javascript " src="../js/autologin.js"></script> </head> <body class="yui-skin-sam"> <script type="text/javascript"> window.loadingMask = new YAHOO.rapidjs.component.LoadingMask({}); window.loadingMask.show(); var zt= "${iamZt}"; setInterval("myInterval()",4000);//1000为1秒钟 function myInterval() { if(zt==""){ alert("您已被迫下线,需重新登录"); window.location.href = "/iam/auth/login?message=被迫下线,需重新登录"; //document.body.innerHTML = response.responseText; return; } } </script> <g:render template="/layouts/commonLayout"></g:render> <rui:html id="changeProfileDialog" iframe="false"></rui:html> <rui:popupWindow componentId="changeProfileDialog" width="390" height="250" resizable="false" title="${g.message(code:'mainLayout.changeprofile')}"></rui:popupWindow> < <g:layoutBody/> </body> </html> 没用的我都删除了
回复
文艺骚年丶 2015-12-15
引用 3 楼 u012239465 的回复:
只有页面加载的时候才执行吧
对呀 只有刷新 才能获取实时数据 但是我不想刷新页面 获取实时数据 用ajax 好像也实现不了
回复
文艺骚年丶 2015-12-15
引用 1 楼 xiaofanku 的回复:
贴一下你的jsp
jstl 我获取的数据 也不是实时的 你这种方法 我没用过。。怎么用 求指教
回复
文艺骚年丶 2015-12-15
<%@ page import="connector.MagicalarmConnector; auth.Role;java.util.List;java.util.ArrayList;" %> <% String address = request.remoteAddr def ip = address; def name=session.username def rsdatasourc = "magicalarmtacfmdev"; def connector = MagicalarmConnector.get(name: rsdatasourc) if (connector == null) { throw new Exception("Could not find Magicalarm connector magicalarm.") } def datasource = connector.ds; def zt="select distinct dlzt from t_sys_loginuser where username =? and ip=?"; def query = "select sparm.parm_value from T_SYS_PARM sparm where sparm.parm_code='iam_kps_url'"; def kpsUrl=""; def iamZt=""; List<String> roleList = new ArrayList(); try { def sparmList = datasource.alertsAdapter.executeQuery(query, []); def ztList = datasource.alertsAdapter.executeQuery(zt, [name,ip]); ztList?.each {tree -> iamZt=tree.dlzt; } sparmList?.each {sparm -> kpsUrl=sparm.parm_value } //菜单名以iam开头的 String roleSql = """select distinct ro.role_name, case when Substr(lower(me.menu_name), 0, 3) = 'iam' THEN me.menu_name ELSE NULL END as menu_name from t_sys_Menu me, t_sys_Role_Pmit_Menu mu, t_sys_role ro, t_sys_user_resp_role re, t_sys_user us where mu.menu_id = me.menu_id(+) and mu.role_id(+) = ro.role_id and us.user_id = re.user_id and ro.role_id = re.role_id and us.user_login_name = '${session.username}'""" def rolesArray = datasource.alertsAdapter.executeQuery(roleSql, []); rolesArray?.each { if(it.role_name&&!roleList.contains(it.role_name.toString())){ roleList.add(it.role_name.toString()); } if(it.menu_name&&!roleList.contains(it.menu_name.toString())){ roleList.add(it.menu_name.toString()); } } } catch (Exception ex) { println "抱歉,数据库连接异常:" + ex.getMessage(); } %> 上面就是我页面后台交互的代码 下面就是我获取的数据 但是这个只能获取初始值 无法获取实时的数据 <script type="text/javascript"> var zt= "${iamZt}"; setInterval("myInterval()",4000);//1000为1秒钟 function myInterval() { if(zt==""){ alert("数据为:"+zt); } } </script>
回复
木头海上漂 2015-12-15
只有页面加载的时候才执行吧
回复
街头小贩 2015-12-15
为什么不用jstl中的sql:<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
回复
街头小贩 2015-12-15
贴一下你的jsp
回复
街头小贩 2015-12-15
看不懂我写的吗?不贴全算了。
回复
文艺骚年丶 2015-12-15
引用 7 楼 xiaofanku 的回复:
贴全了,上面哪个连接数据库的写在jsp中吗?把文件代码贴全了,跟错误没关系的可以不贴,但让我们知道你写的这些都在哪个位置
这个涉及到的代码我都贴出来了 ,上面链接数据库的代码 我是写在jsp页面的,没有报错,下面js里alert出来的值 每次都是初始值,只有刷新页面才能更新值 怎么才能直接得到实时数据呢
回复
街头小贩 2015-12-15
贴全了,上面哪个连接数据库的写在jsp中吗?把文件代码贴全了,跟错误没关系的可以不贴,但让我们知道你写的这些都在哪个位置
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-12-15 10:57
社区公告
暂无公告