STRUTS1.2+AJAX

系统 1372 0

在一个页面上有两个DIV,DIV1和DIV2,在DIV1中有一棵树,在DIV2中有一个struts   form,在struts   form中有一个文本框和一个提交按钮,我想实现如下功能:在文本框中写上信息,然后按提交按钮,提交按钮会调用struts的action,将文本框中的数据写入数据库中,然后DIV2中的struts   form刷新为初始状态,我想知道如何实现页面DIV2的刷新而DIV1页面保持不变?有代码可以参考吗?

-----div       1------------                 ------div     2------------------------
|         tree                               |               |         ------struts   form--------------|
|                                               |               |       |         text   area                                     |
|                                               |               |       |                               button                     |
|                                               |               |       --------------------------------|
-------------------------                 -----------------------------------
 
 
问题点数: 100  回复次数: 6 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天
  • cloudgamer
  • 等级:
  • 可用分等级:富农
  • 总技术专家分:14247
  • 总技术专家分排名:1114
发表于: 2007-02-07 21:52:09 1 楼 得分: 0
帮顶
 
<!----> 修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • shenglijay
  • 等级:
  • 可用分等级:中农
  • 总技术专家分:1253
  • 总技术专家分排名:16177
发表于: 2007-02-08 08:50:00 2 楼 得分: 0
点击button,通过触发onclick事件。写点ajax代码应该可以实现的。通过你的js代码来提交给action.在通过响应信息来刷新你的form
 
<!----> 修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • zhangsc
  • 等级:
  • 可用分等级:富农
  • 总技术专家分:56
  • 总技术专家分排名:118779
发表于: 2007-02-08 11:49:55 3 楼 得分: 0
有一点我没有明白,在通过js来调用struts   action,action结束后会调用forward,会使整个页面刷新,我想知道如何实现局部刷新,能给出具体的代码吗?
 
<!----> 修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • shenglijay
  • 等级:
  • 可用分等级:中农
  • 总技术专家分:1253
  • 总技术专家分排名:16177
发表于: 2007-02-08 13:08:37 4 楼 得分: 0
你调struts   action   时侯,action   里面   最后要返回一个forward对象时,   你写成   return   null;   这样它就会返回到你的页面。实现的效果就是局部刷新
 
<!----> 修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • zhangsc
  • 等级:
  • 可用分等级:富农
  • 总技术专家分:56
  • 总技术专家分排名:118779
发表于: 2007-02-08 13:28:50 5 楼 得分: 0
是可以这样做,但是却没有使用上Ajax技术,Ajax技术的优势一点都没有体现出来
 
<!----> 修改 删除 举报 引用 回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • shenglijay
  • 等级:
  • 可用分等级:中农
  • 总技术专家分:1253
  • 总技术专家分排名:16177
发表于: 2007-02-08 17:18:29 6 楼 得分: 100
页面:
------------------------------------------------------------
<html>
<head>
<script   type= "text/javascript ">
var   http   =   getHttpObject();
                                   
                                    /*   确保在ie的各式版本,以及在firefox或其他浏览器下,都有用的xmlhttpRequest     */
function   getHttpObject(){
var   xmlhttp   =   false;
if(window.XMLHttpRequest){
xmlhttp   =   new   XMLHttpRequest();
if(xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType( 'text/xml ');
  }
}
else{
try{
xmlhttp   =   new   ActiveXObject( "Msxml2.XMLHTTP ");
}catch(e){
try{
xmlhttp   =   new   ActiveXObject( "Microsoft.XMLHTTP ");
}catch(e){
xmlhttp   =   false;
}
        }
}
return   xmlhttp;
}

function   handleHttpResponse(){
if(http.readyState   ==   4){
if(http.status   ==   200){
var   text   =   http.responseText;
if(text   !=   null   ||   text.length   > 0)
//   update   the   textarea;
document.getElementById( "input ").value   =   text;
}
else{
alert( "error!!! ");
alert(http.status);
}
}
}

function   getInfo(){
var   url   =   "aaa.do ";   //   your   action   name
http.open( "GET ",url,true);
http.onreadystatechange   =   handleHttpResponse;
http.send(null);
return   ;
}
</script>
</head>
<body>
<div   id= "tree "   style= "width:150px;height:500px;float:left;background-color:limegreen; "> this   is   a   menu   tree </div>
<div   id= "form "   style= "width:820px;height:500px;float:left;background-color:yellow; ">
textArea: <input   type= "text "   id= "input "> <br>
<input   type= "button "   onclick= "getInfo(); "   value= "Submit ">
</div>
</body>
</html>
-------------------------------------------
Action
--------------------------------------------
public   class   GetMsgAction   extends   Action   {

public   ActionForward   execute(ActionMapping   mapping,   ActionForm   form,
HttpServletRequest   request,   HttpServletResponse   response)   {
response.setContentType( "text/html ");
response.setCharacterEncoding( "utf-8 ");
try   {
response.getWriter().write( "hello,this   is   the   update   text!! ");
}   catch   (IOException   e)   {
e.printStackTrace();
}
//   should   be   return   null;
return   null;
}
}
-------------------------------------
大致就是这样啊,至于你要更新什么,还是从数据库取什么在更新就自己做吧,我只是做个简单的例子

STRUTS1.2+AJAX


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论