有關(guān)于整體刷新和局部刷新frameset窗口
遇到這種這種分割頁(yè)面,大家首先想到是frameset,使用framset分割多種frame,這種方式簡(jiǎn)單。若是不喜歡使用framset,喜歡前臺(tái)設(shè)計(jì)的人也許會(huì)選擇p拼接,浮動(dòng),這就考查css樣式的功底了。
這次主要講解局部刷新的問(wèn)題。需求是:左邊f(xié)rame,右邊f(xié)rame。
大家肯定疑問(wèn),這樣刷新沒(méi)有問(wèn)題啊。的確如此?,F(xiàn)在使用framset,分割兩frame,各自更新各自。右邊f(xié)rame展示菜單盡管更新提交即可。對(duì)左邊f(xié)rame是沒(méi)有影響的。
為了方便理解,左邊Frame簡(jiǎn)稱(chēng)LeftFrame,右邊Frame簡(jiǎn)稱(chēng)RightFrame;假如我提交RightFrame頁(yè)面,需要更新LeftFrame【動(dòng)態(tài)】頁(yè)面。那如何辦呢?
其實(shí)就是從數(shù)據(jù)庫(kù)中重新讀數(shù)據(jù);
<FRAMESET cols = "280,*" frameborder=yes bordercolor=silver>
<FRAME SRC="modifyMenu!showTreeMenu" NAME="menuTree" SCROLLING="No" id="leftTree">
<FRAME SRC="showModifyMenu.jsp" NAME="main" SCROLLING="AUTO" id="showModifyMenu">
</FRAMESET>
其中modifyMenu!showTreeMenu是轉(zhuǎn)向到tree.jsp頁(yè)面
現(xiàn)在項(xiàng)目中,前臺(tái)使用struts2,當(dāng)提交右邊頁(yè)面數(shù)據(jù)時(shí),當(dāng)時(shí)設(shè)想:然后再次跳轉(zhuǎn)到主界面,相當(dāng)于重新讀取數(shù)據(jù),但是加載的主界面竟然是顯示在右邊區(qū)域,這樣就成了兩個(gè)LeftFrame。即使更改Struts2中的resultType的重定向也不可以。
最后,竟然一個(gè)簡(jiǎn)單的JS解決問(wèn)題。
在提交右邊頁(yè)面RightFrame,使用JS更新左邊LeftFrame。如下:
在rightFrame中的body的onload的事件:
function init(){
//leftTree是左邊Frame的id
//重新加載這個(gè)頁(yè)面
window.parent.frames[ "leftTree"].location.reload();
}
window.parent.frames[ "leftTree"].location.reload()
當(dāng)時(shí)你在某一個(gè)思路上山窮水盡的時(shí)候,可以嘗試換種思路,也是會(huì)柳暗花明.
需求如下:若刷新右邊RightFrame頁(yè)面,只刷新部分左邊LeftFrame【刷新某個(gè)p】。
提到局部部分刷新,肯定想到是Ajax局部刷新。
那我們用純js的Ajax基礎(chǔ)實(shí)現(xiàn):
function createXmlHttpRequest(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function init(){
//則進(jìn)行局部刷新
var xmlHttpReq=createXmlHttpRequest();
//獲得出發(fā)的url的,比如struts2的action或者servlet或jsp頁(yè)面
var url="success.jsp";
xmlHttpReq.open("GET",url,true);
//因?yàn)槟阍谧饕粋€(gè)異步調(diào)用,
//所以你需要注冊(cè)一個(gè)XMLHttpRequest對(duì)象將調(diào)用的回調(diào)事件處理器
xmlHttpReq.onreadystatechange=function(){
if(xmlHttpReq.readyState==4){
if(xmlHttpReq.status==200){
//使用parent獲得左邊頁(yè)面中的某一個(gè)p,然后更改展示的外觀
window.parent.frames["leftTree"].document.getElementById(pId).innerHTML="測(cè)試";
}else{
alert(xmlHttpReq.status+xmlHttpReq.responseText);
}
}
};
xmlHttpReq.send(null);
}
window.parent.frames["leftTree"].document.getElementById(pId).innerHTML=xmlHttpReq.responseText
后臺(tái)action中的寫(xiě)法如下:
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
out=response.getWriter();
out.print("從后臺(tái)傳入的數(shù)據(jù)");
兩種刷新方式,一種整體刷新;一種局部刷新;
相關(guān)文章
java核心編程之文件過(guò)濾類(lèi)FileFilter和FilenameFilter
這篇文章主要為大家詳細(xì)介紹了java文件過(guò)濾類(lèi)FileFilter和FilenameFilter,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Java servlet執(zhí)行流程代碼實(shí)例
這篇文章主要介紹了Java servlet執(zhí)行流程代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例
這篇文章主要介紹了Jax-rs規(guī)范REST接口文件上傳代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Spring中@Value讀取properties作為map或list的操作
這篇文章主要介紹了Spring中@Value讀取properties作為map或list的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07@Autowired與@Resource在實(shí)現(xiàn)對(duì)象注入時(shí)的區(qū)別
這篇文章主要介紹了@Autowired與@Resource在實(shí)現(xiàn)對(duì)象注入時(shí)的區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-04-04mybatis使用Integer類(lèi)型查詢(xún)可能出現(xiàn)的問(wèn)題
這篇文章主要介紹了mybatis使用Integer類(lèi)型查詢(xún)可能出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03利用Maven實(shí)現(xiàn)將代碼打包成第三方公共jar包
在項(xiàng)目開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要將一些公共方法提取出來(lái),然后單獨(dú)封裝成一個(gè)第三方公共jar包,采用普通的方式打包后的jar,依賴(lài)的工程執(zhí)行編譯時(shí),卻提示找不到對(duì)應(yīng)的依賴(lài)包,那么如何將工程打包為可執(zhí)行jar包呢?下面向大家分享三種方法2022-10-10基于多線程并發(fā)的常見(jiàn)問(wèn)題(詳解)
下面小編就為大家?guī)?lái)一篇基于多線程并發(fā)的常見(jiàn)問(wèn)題(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10Java8中對(duì)于LocalDateTime的序列化和反序列化問(wèn)題
這篇文章主要介紹了Java8中對(duì)于LocalDateTime的序列化和反序列化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06