[英]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.