2012-10-26 69 views
0

index.jsp包含java代碼,它將從數據庫中提取一些圖像和文本。如何在JSP中執行Java代碼後才顯示頁面

在我寫的JavaScript文件中。

$(document).ready(function(){ 
    //When Document is Ready, Show the Main Page 
    $("#showifjavaenabled").fadeIn(1000); 

    }); 
之初

所以,DIV showifjavaenabled是隱藏的,但我注意到,在1秒鐘後,即使它顯示出來,不是所有的Java執行,因爲他們實際上是很多,他們需要加載」不是個時間大,這只是一兩秒鐘,但它仍然看起來不好,我怎麼才能.show() or .fadeIn()這個頁面只有在所有的java代碼已經被執行了?

+0

@Timm我知道感謝:d – user1665700

+0

對不起,我不明白的問題,如@Andrea說,JSP代碼應該在服務器端,以便在正確的時間調用'$(document).ready()'。 – Timm

+0

問題是,他從JSP中查詢數據庫,然後從客戶端查詢數據庫,而不使用EJB。 十年前,我發現了Struts和EJB之前就做到了這一點,我記得這種問題。這是一個反模式,不要把業務放在前端,爲了不把它放在客戶端... –

回答

1

這其中的原因不把Java代碼到JSP的一個...

如果你是做服務器端的業務,你應該這樣做服務器端,然後將請求轉發到JSP與所有數據已經加載。

或者您也可以使用AJAX調用來執行Java的前端操作,使用一種瓷磚(加載頁面時,小箱搬入與阿賈克斯仍是進度條跑,直到他完成了。

避免小腳本(<% %> )儘可能就可以了,對於一個更好的結果不同的概念


編輯:。 你真的應該嘗試使用類似Struts2的(不是Struts1的,那就是更加努力,不那麼強大的)一些框架

這並不困難,有文檔記錄,您花時間學習'hello world'和設置應用程序的時間將立即以力量和易用性的方式回來,您可以將其用於將來的應用程序。

將一個巨大的逗號分隔的字符串從服務器發送到客戶端,然後對其進行去標記化,但沒有面向對象的編程。

OOP將是你需要使用的每一個概念上的對象,通過Action暴露在JSP一個對象,並在JSP EL與OGNL或訪問標籤...

我知道一步似乎都巨大,但它是值得的...

或者你可以留下你的反模式,antediluvian技術,並試圖破解這個問題,也許今天你會結束這個軟件,但明天你將有同樣的問題。

我的2美分(如說,我是您的情況年前...)

+0

當我要使用AJAX調用將一些信息放入一個動態頁面時,我有一個問題,因爲我需要.append()很多東西,AJAX調用不會一直帶給我相同數量的信息,我知道這是一種方法,而且我也面臨着scriplets方法的問題,當我使用$。得到,而且我並不是真正的專家,它從Servlet返回一個名爲responseText的字符串,所以它只有一個字符串,它將包含許多用逗號分隔的信息,然後我必須用JavaScript將它們分開< - 錯誤的但我不知道另一種方式:( – user1665700