簡體   English   中英

從jsp頁面onload事件僅調用一次servlet頁面

[英]Call a servlet page from a jsp page onload event only once

我有一個jsp頁面,我想在其中顯示2個列表,該列表將使用servlet返回的值進行填充。這應該在加載jsp頁面后立即發生,因此我通過jsp頁面的onload函數調用了servlet。 我能夠獲取頁面上的列表,但是它上升到一個無限循環,一次又一次調用servlet並顯示相同的值。

在我的test2.jsp中,我在加載jsp頁面時使用它來調用servlet。

function load()
{

document.location.href="/OnaUIDemo/ona?";

}

在我的ona servlet中,我正在使用它,

RequestDispatcher rd = getServletContext().getRequestDispatcher("/test2.jsp");

我發現的是,因為它通過頁面加載來調用servlet,並且servlet也重定向到相同的jsp。 jsp再次獲取負載,一次又一次導致無限負載。 請幫助我將Servlet調用控制為僅一次。

您真的需要使用servlet嗎?可以使用POJO來完成。

制作一個將返回這兩個列表的類。

public class test{

public List getList1()
{
//do your stuff here to add values in list
return list;//return your list 
}
public List getList2()
{
//do stuff here
return list;//return your list
}
}

在您的jsp中,只需調用這兩個函數

<%
test t = new test();
List l1=t.getList1();
List l2=t.getList2();
//now you have the two list,just show them
%>

如所指出的那樣,不鼓勵使用腳本。您可以使用jstl

<jsp:useBean id="obj_name" type="package_name.class_name" />

這等效於<%test t = new test();%>現在迭代並顯示jstl中的列表值

<c:forEach var="content" items="${obj_name.list1}">
c:out value="${content}" />
</c:forEach>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM