本菜鸟遇到一个问题,望大侠们帮忙我想实现页面的局部刷新,因为不知道如何实现,故将其分为几个步骤。1. 通过由A.jsp生成的页面得到要传递的参数。
2. 经过某个action处理.
3. 将在action中得到的值传给 a.jsp 页面
4. 解析a.jsp页面。5. 得到a.jsp页面的输出,并将其放到由A.jsp已经生成的页面中的指定容器中。请问各位大侠们,这种方式可以实现吗?最好是能给些粗略的代码提示?
2. 经过某个action处理.
3. 将在action中得到的值传给 a.jsp 页面
4. 解析a.jsp页面。5. 得到a.jsp页面的输出,并将其放到由A.jsp已经生成的页面中的指定容器中。请问各位大侠们,这种方式可以实现吗?最好是能给些粗略的代码提示?
解决方案 »
- eclipse下部署tomcat出现的问题
- 请教tomcat下集群配置
- 求静态内部类的加载机制
- Struts2根据分页数分页,分页数怎么传递
- 在linux上如何查看java jvm是多少位?
- 急!为什么我用commons-fileupload上传文件到服务器什么都取不到??!!
- 安装TomCat后的奇怪现象!提示让登陆。
- struts的问题,常用struts的朋友近来解决一下,我急用,谢谢!!!!
- 请大家帮帮忙,这个问题捆绕了我2天了!
- 各位大侠!小弟刚接触ejb!请问ejb是什么?是java的什么方向的一部分?
- 请大侠远程解决个叼专的乱码问题...
- 为什么session.sava(person)里面只有select语句,没有insert语句 ???? 数据保存不了!没有被写入数据库!
当然,如果你希望用Ajax就是另一种套路了。
楼主我感觉你还不太清晰B/S架构的基本原理。建议先掌握基本的J2EE体系,然后再理解Ajax开发模型,jQuery只是便于你使用Ajax的工具,不是说用了jQuery一切问题迎刃而解的。
我是第一次接触你们提及的处理局部刷新的解决方案的,也是第一次尝试着去解决局部刷新问题。让各位见笑了。
http://i5land.iteye.com/blog/311710主要是理解所谓Ajax异步的整体系统流程大概是怎么样的。
我把我的部分关键代码贴如下:配置响应动作的 xml
<action name="dealSecPage" class=".....">
<result>/pages/frame/front/ B.jsp </result>
</action>我的目的是通过传递一个参数给 处理B.jsp的action,经过action 处理后,将 B.jsp 放到 a.jsp 的 #content中a.jsp
<body>
<div header="..">
</div>
...
/******************* 异步加载动态数据的 js ****** ****/
<script type="text/javascript">
var xmlHttp;
function createXHR(){
if( window.XMLHttpRequest ){
xmlHttp = new XMLHttpRequest();
}else{
xmlHttp = new ActiveXObject( "Microsof.XMLHTTP" );
}
}
function sendReq( id ){
createXHR();
xmlHttp.open( "post", "dealSecPage.action?menu.id="+id ); xmlHttp.onreadystatechange = callbackData;
xmlHttp.send( null );
document.getElementById( "content" ).innerHTML ="";
} function callbackData(){
if( xmlHttp.readyState == 4 ){
if( xmlHttp.readyState == 200 ){
var text= xmlHttp.responseText;
if( text ){
document.getElementById( "content" ).innerHTML = text;
}
}
}
</script> <div id="content">
...
<a href="javascrip:sendReq( <s:property vlaue='id'/> )"></a>
...
</div>
...
<div id="footer">
</div>
</body>
B.jsp前面多了个空格,这个实际情况没写错吧?另外在action 和 B.jsp中,增加点 System.out.println("xxoo"),确保action 和 B.jsp确实被执行,尤其是一些关键性的处理之后。此外,这里:
if( xmlHttp.readyState == 200 ){
var text= xmlHttp.responseText;
if( text ){
document.getElementById( "content" ).innerHTML = text;
}
}
增加else处理,很可能就已经出错了的,把出错后返回的信息alert出来看看。
总之,刚开始玩Ajax,调试会成为一个比较麻烦的地方,所以多自己注意进行捕获和处理。