2014-07-07 53 views
1

我有兩個jsp說test1.jsp和test2.jsp。我的程序流程如下。我想知道在這裏是否需要ajax?我需要檢索test1.jsp文本框中的數據。但是ajax調用是從不同的頁面創建的。我想要我的test1.jsp中的控制器響應。我該怎麼做?是否有必要在下面的代碼中使用ajax?

test1.jsp

<input type="text" id="testid"/> 
<input type="button" onclick="fnopenwindow()"/> 
<script type="text/javascript" src="abc.js"></script> 

test2.jsp

<script> 
function fnsample(){ 
    //some code 
    var l1=/*some value*/ 
    var l2=/*some value*/ 
    fnPassData(l1,l2); 
} 
</script> 
<div id="map"> </div> 
<body onload="fnsample()" > 
</body> 
<script type="text/javascript" src="abc.js"></script> 

abc.js

function fnopenwindow(){ 
window.open("test2.jsp","name","width=600px;height=400px"); 
} 

function fnPassData(l1,l2){ 
    var url="home/test"; 
    var data= 'var1=' + l1 + '&var2=' + l2; 
    $.ajax({ 
     type:"POST", 
     url:url, 
     data:data, 
     dataType:"json", 
     success:function(responseJSON){ 
      alert(responseJSON); 
     } 
    }); 
} 

控制器類

@Path("test") 
public ModelandView gettest(@Context HttpServletRequest request) { 
    ModelandView responseView = new ModelandView(new JsonView()); 
    //some code here 
    if (somecondition) { 
     responseView.addObject("data", dataID); 
    } 
    else { 
     System.out.println("Not present"); 
    } 
    return responseView; 
} 

編輯::

我從我的腳本發送一些數據到控制器通過Ajax和又回到了同一個JSP即響應。 test2.jsp。但我想把控制器的響應發送給不同的jsp即。 test1.jsp。因爲我不刷新test2.jsp的任何部分是否有任何其他方式將數據從test2.jsp發送到控制器,然後從我的test1.jsp調用ajax並從同一控制器獲取數據?

+0

你用彈簧嗎? –

+0

是的,先生我正在使用彈簧 – Vidya

回答

0

您的疑問絕對決策意識,也沒有必要使AJAX調用,因爲調用在onload()

通常製成,AJAX調用有用/應該寫一次文件已準備就緒,並通過一些動作時,客戶/用戶。

+0

是的權利但是,我如何將數據從我的代碼發送到控制器沒有ajax和取回數據到我的test1.jsp? – Vidya

+0

@Vidya,然後去AJAX重新加載只有一部分代碼,無需重新加載整個頁面。 –

+0

1)編寫一個servlet 2)獲取文本框的值3)將該值設置爲一個屬性4)從servlet派發你的jsp 5)在jsp中獲取屬性值。 –

0

從問題你的編輯,

沒有。你不能以這種方式

首先了解AJAX的目的做,

阿賈克斯意味着加載頁面的一部分,而無需刷新整個頁面

所以在您的設計,您可以使用ajax調用返回響應到相同的jsp頁面

或者將響應轉發到頁面文章上的其他頁面而不使用ajax。

希望這有助於!

+0

如何將響應傳遞給沒有Ajax的其他頁面?更基本上,我需要改變已經加載的頁面部分。 – Vidya

+0

您可以使用表單發佈頁面的內容,一旦發佈表單,您可以獲取其所有屬性。否則你可以通過url發送屬性 –

+0

所以首先我做一個ajax調用獲取響應,並在成功函數中做window.location =「url」?+ responsedata;並在我的接收jsp中接收請求.getAttribute?然後我將它發送到必填字段。 – Vidya

相關問題