ajax请求action后,数据存放在session中,jsp页面通过el获取数据,可是第一次登录总
ssh项目中,我需要登陆某个页面(如a.jsp),通过onload来触发js函数(函数是ajax请求)请求到相应的action,处理完成后将数据存放到session对象里面,然后在a.jsp中用el表达式获取想要的数据,这是我的设计思路。可是问题来了,不知道为什么在打开浏览器第一次登录a页面时,a页面不会显示想要的数据,刷新后就有数据了,之后也正常。这是为什么了???我该如何解决这个问题了?或有什么好的办法可以实现登陆一个页面,页面上数据是从服务器端获取的,的方法吗? --------------------编程问答-------------------- 因为js运行时在加载页面之后的,你onload之后虽然是取到了数据,但是没有动态的赋值给页面,当你第一次进去的时候session为空,当你第二次刷新的时候session里面有值所有之后再你session失效前都是正常的。el表达式不能完成动态赋值,如果想要效果,可以用javascript动态赋值。 --------------------编程问答-------------------- 可以在ajax函数中设置相应的回调函数, 回调函数中用js来动态设置页面中的值。 --------------------编程问答-------------------- 我又一个笨笨的解决方法:你可以在登录jsp头部 添加代码段 判断你页面需要的数据是否为空 如果为空就用request 或者 respons 请求你的action中获取数据的方法 然后返回到登录页面--------------------编程问答-------------------- 其实之前想到过一个方法,不是用ajax提交,只是用window.location.href去请求action,这样的话我可以通过el动态的获得自己想要的数据,可是这样有点不好就是,要设置一个标记,用来标记是第一次访问,不然页面会总是提交(因为也是由onload来触发)。。于是我就改用ajax来尝试了,结果就出现了上述问题,通过上面几位的意见,我尝试在回调函数中修改页面,现在却发现,回调中接收到的responseXML总是为null,调试时候明明有数据的,现在我真是迷糊了。。
补充:Java , Java EE